From fd372375d00315d0cad5073d6823c61dba0c94e3 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Wed, 25 Jun 2025 15:21:39 +0200 Subject: [PATCH] Add missing FKs for Studierendenantrag --- .../27351_digitalisierung_formulare.php | 84 ++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.4/27351_digitalisierung_formulare.php b/system/dbupdate_3.4/27351_digitalisierung_formulare.php index ce572cc8e..5c2a54f67 100644 --- a/system/dbupdate_3.4/27351_digitalisierung_formulare.php +++ b/system/dbupdate_3.4/27351_digitalisierung_formulare.php @@ -92,7 +92,22 @@ if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag LIMIT datum_wiedereinstieg TIMESTAMP NULL, grund TEXT NULL, dms_id INTEGER NULL, - CONSTRAINT tbl_studierendenantrag_pk PRIMARY KEY(studierendenantrag_id) + CONSTRAINT tbl_studierendenantrag_pk PRIMARY KEY(studierendenantrag_id), + CONSTRAINT fk_tbl_studierendenantrag_prestudent_id + FOREIGN KEY (prestudent_id) + REFERENCES public.tbl_prestudent(prestudent_id) + ON UPDATE CASCADE + ON DELETE RESTRICT, + CONSTRAINT fk_tbl_studierendenantrag_studiensemester_kurzbz + FOREIGN KEY (studiensemester_kurzbz) + REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) + ON UPDATE CASCADE + ON DELETE RESTRICT, + CONSTRAINT fk_tbl_studierendenantrag_dms_id + FOREIGN KEY (dms_id) + REFERENCES campus.tbl_dms(dms_id) + ON UPDATE CASCADE + ON DELETE RESTRICT ); CREATE SEQUENCE campus.tbl_studierendenantrag_studierendenantrag_id_seq INCREMENT BY 1 @@ -114,6 +129,44 @@ if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag LIMIT echo '
campus.tbl_studierendenantrag: table created'; } +if ($result = @$db->db_query(" + SELECT 1 + FROM information_schema.table_constraints + WHERE constraint_name='fk_tbl_studierendenantrag_prestudent_id' + LIMIT 1 +")) { + if($db->db_num_rows($result) == 0) + { + $qry = " + ALTER TABLE campus.tbl_studierendenantrag + ADD CONSTRAINT fk_tbl_studierendenantrag_prestudent_id + FOREIGN KEY (prestudent_id) + REFERENCES public.tbl_prestudent(prestudent_id) + ON UPDATE CASCADE + ON DELETE RESTRICT; + + ALTER TABLE campus.tbl_studierendenantrag + ADD CONSTRAINT fk_tbl_studierendenantrag_studiensemester_kurzbz + FOREIGN KEY (studiensemester_kurzbz) + REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) + ON UPDATE CASCADE + ON DELETE RESTRICT; + + ALTER TABLE campus.tbl_studierendenantrag + ADD CONSTRAINT fk_tbl_studierendenantrag_dms_id + FOREIGN KEY (dms_id) + REFERENCES campus.tbl_dms(dms_id) + ON UPDATE CASCADE + ON DELETE RESTRICT; + "; + + if(!$db->db_query($qry)) + echo 'campus.tbl_studierendenantrag: '.$db->db_last_error().'
'; + else + echo '
campus.tbl_studierendenantrag: fks added'; + } +} + if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_status LIMIT 1")) { $qry = "CREATE TABLE campus.tbl_studierendenantrag_status ( @@ -183,6 +236,11 @@ if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_lehrve FOREIGN KEY (studierendenantrag_id) REFERENCES campus.tbl_studierendenantrag(studierendenantrag_id) ON UPDATE CASCADE + ON DELETE RESTRICT, + CONSTRAINT fk_tbl_lehrveranstaltung_lehrveranstaltung_id + FOREIGN KEY (lehrveranstaltung_id) + REFERENCES lehre.tbl_lehrveranstaltung(lehrveranstaltung_id) + ON UPDATE CASCADE ON DELETE RESTRICT ); CREATE SEQUENCE campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq @@ -205,6 +263,30 @@ if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_lehrve echo '
campus.tbl_studierendenantrag_lehrveranstaltung: table created'; } +if ($result = @$db->db_query(" + SELECT 1 + FROM information_schema.table_constraints + WHERE constraint_name='fk_tbl_lehrveranstaltung_lehrveranstaltung_id' + LIMIT 1 +")) { + if($db->db_num_rows($result) == 0) + { + $qry = " + ALTER TABLE campus.tbl_studierendenantrag_lehrveranstaltung + ADD CONSTRAINT fk_tbl_lehrveranstaltung_lehrveranstaltung_id + FOREIGN KEY (lehrveranstaltung_id) + REFERENCES lehre.tbl_lehrveranstaltung(lehrveranstaltung_id) + ON UPDATE CASCADE + ON DELETE RESTRICT; + "; + + if(!$db->db_query($qry)) + echo 'campus.tbl_studierendenantrag_lehrveranstaltung: '.$db->db_last_error().'
'; + else + echo '
campus.tbl_studierendenantrag_lehrveranstaltung: fks added'; + } +} + if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/studierendenantrag';")) { if($db->db_num_rows($result) == 0)