diff options
author | alecpl <alec@alec.pl> | 2010-11-15 14:03:22 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2010-11-15 14:03:22 +0000 |
commit | 8710133250ec58bb9572bce0d3e13e232b60d17a (patch) | |
tree | f3cdd7c8e5cdd571a1ecd154a024f02c3065d12e /SQL | |
parent | 3e54812afa0db1eeb201c3faa53911f51d91d3e1 (diff) |
- Fix error in MSSQL DDL scripts (#1487112): use trigger instead of foreign key constraint
Diffstat (limited to 'SQL')
-rw-r--r-- | SQL/mssql.initial.sql | 9 | ||||
-rw-r--r-- | SQL/mssql.upgrade.sql | 7 |
2 files changed, 10 insertions, 6 deletions
diff --git a/SQL/mssql.initial.sql b/SQL/mssql.initial.sql index 36788585f..823d1b3ae 100644 --- a/SQL/mssql.initial.sql +++ b/SQL/mssql.initial.sql @@ -291,8 +291,11 @@ ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_c ON DELETE CASCADE ON UPDATE CASCADE
GO
-ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contact_id]
- FOREIGN KEY ([contact_id]) REFERENCES [dbo].[contacts] ([contact_id])
- ON DELETE CASCADE ON UPDATE CASCADE
+-- Use trigger instead of foreign key (#1487112)
+-- "Introducing FOREIGN KEY constraint ... may cause cycles or multiple cascade paths."
+CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
+ AFTER DELETE AS
+ DELETE FROM [dbo].[contactgroupmembers]
+ WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
GO
diff --git a/SQL/mssql.upgrade.sql b/SQL/mssql.upgrade.sql index cf0c17157..4072c25ff 100644 --- a/SQL/mssql.upgrade.sql +++ b/SQL/mssql.upgrade.sql @@ -77,9 +77,10 @@ ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_c ON DELETE CASCADE ON UPDATE CASCADE
GO
-ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contact_id]
- FOREIGN KEY ([contact_id]) REFERENCES [dbo].[contacts] ([contact_id])
- ON DELETE CASCADE ON UPDATE CASCADE
+CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
+ AFTER DELETE AS
+ DELETE FROM [dbo].[contactgroupmembers]
+ WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
GO
ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id]
|