From 3542ff539fabee3e5b29b592ac68b37b54994049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 20 Jun 2018 16:42:14 +0200 Subject: [PATCH] =?UTF-8?q?Fehler=20behoben=20wodurch=20bereits=20vorhande?= =?UTF-8?q?ne=20Reihungstestanmeldungen=20nicht=20immer=20zusammengef?= =?UTF-8?q?=C3=BChrt=20wurden=20beim=20Zusammenlegen=20von=20Personen=20Fe?= =?UTF-8?q?hlenden=20ForeignKey=20bei=20public.tbl=5Frt=5Fperson.person=5F?= =?UTF-8?q?id=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.3.php | 29 +++++++++++++++++++++++++ vilesci/stammdaten/personen_wartung.php | 1 + 2 files changed, 30 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 73c2ea755..12aea86b0 100755 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -2192,6 +2192,35 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants } } +// Add missing Foreign Key to public.tbl_rt_person.person_id +if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'fk_tbl_rt_person_person_id'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "SELECT person_id FROM public.tbl_rt_person WHERE NOT EXISTS(SELECT 1 FROM public.tbl_person WHERE person_id=tbl_rt_person.person_id)"; + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)==0) + { + $qry = "ALTER TABLE public.tbl_rt_person ADD CONSTRAINT fk_tbl_rt_person_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person ON DELETE RESTRICT ON UPDATE CASCADE;"; + + if (!$db->db_query($qry)) + echo 'public.tbl_rt_person '.$db->db_last_error().'
'; + else + echo '
public.tbl_rt_person: added foreign key on column person_id'; + } + else + { + echo 'public.tbl_rt_person: + Fehlender Foreign Key auf person_id kann nicht erstellt werden! + In der Tabelle public.tbl_rt_person wird auf Personen verlinkt die nicht mehr in der Tabelle + public.tbl_person vorhanden sind. Bitte bereinigen Sie die Datensätze manuell und starten Sie dieses Script erneut. + '; + } + } + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php index 8f8cd52f3..4e5d802e7 100644 --- a/vilesci/stammdaten/personen_wartung.php +++ b/vilesci/stammdaten/personen_wartung.php @@ -125,6 +125,7 @@ if(isset($radio_1) && isset($radio_2) && $radio_1>=0 && $radio_2>=0) $sql_query_upd1.="UPDATE public.tbl_msg_status SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="UPDATE system.tbl_person_lock SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="UPDATE system.tbl_log SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; + $sql_query_upd1.="UPDATE public.tbl_rt_person SET person_id=".$db->db_add_param($radio_2, FHC_INTEGER)." WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; $sql_query_upd1.="DELETE FROM public.tbl_person WHERE person_id=".$db->db_add_param($radio_1, FHC_INTEGER).";"; if($db->db_query($sql_query_upd1))