From 2f4e966fdf3284054c144f1712fb06c78e7c5a3c Mon Sep 17 00:00:00 2001 From: Kirill Solomko Date: Tue, 7 Nov 2023 11:18:54 +0100 Subject: [PATCH] MT#58673 voip_preferences_enum add foreign key cascade support * foreign key preference_id -> voip_preferences.id now has ON UPDATE CASCADE ON DELETE CASCADE, to correctly recursively remove records from voip_preferences_enum * all records in provisioning.voip_preferences_enum with orphaned preference_id (does not exists in voip_preferences) are removed Change-Id: I36950dbebefa72beb8a20d5373aeb692cb33211d --- db_scripts/diff/15787.down | 5 +++++ db_scripts/diff/15787.up | 9 +++++++++ 2 files changed, 14 insertions(+) create mode 100644 db_scripts/diff/15787.down create mode 100644 db_scripts/diff/15787.up diff --git a/db_scripts/diff/15787.down b/db_scripts/diff/15787.down new file mode 100644 index 00000000..315237d0 --- /dev/null +++ b/db_scripts/diff/15787.down @@ -0,0 +1,5 @@ +USE provisioning; + +ALTER TABLE voip_preferences_enum DROP FOREIGN KEY `pref_id_fk`; +ALTER TABLE voip_preferences_enum ADD CONSTRAINT `voip_preferences_enum_ibfk_1` FOREIGN KEY (`preference_id`) REFERENCES `voip_preferences` (`id`); + diff --git a/db_scripts/diff/15787.up b/db_scripts/diff/15787.up new file mode 100644 index 00000000..28b07c54 --- /dev/null +++ b/db_scripts/diff/15787.up @@ -0,0 +1,9 @@ +USE provisioning; +SET autocommit=0; + +DELETE from voip_preferences_enum where preference_id NOT IN (select id from voip_preferences); + +ALTER TABLE voip_preferences_enum DROP FOREIGN KEY `voip_preferences_enum_ibfk_1`; +ALTER TABLE voip_preferences_enum ADD CONSTRAINT `pref_id_fk` FOREIGN KEY (`preference_id`) REFERENCES `voip_preferences` (`id`) ON UPDATE CASCADE ON DELETE CASCADE; + +COMMIT;