diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-11-15 14:03:22 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-11-15 14:03:22 +0000 |
| commit | 9b2c4adb548cf76c9814dc799c0bb3fff5925309 (patch) | |
| tree | 5aedd7a60e251b1b54b49d348ebe891df26a5e8f | |
| parent | 7e5dfbe87bcc7e891e4565eb69f70bf9b2c3091e (diff) | |
- Fix error in MSSQL DDL scripts (#1487112): use trigger instead of foreign key constraint
git-svn-id: https://svn.roundcube.net/trunk@4226 208e9e7b-5314-0410-a742-e7e81cd9613c
| -rw-r--r-- | roundcubemail/CHANGELOG | 1 | ||||
| -rw-r--r-- | roundcubemail/SQL/mssql.initial.sql | 9 | ||||
| -rw-r--r-- | roundcubemail/SQL/mssql.upgrade.sql | 7 |
3 files changed, 11 insertions, 6 deletions
diff --git a/roundcubemail/CHANGELOG b/roundcubemail/CHANGELOG index 871bc3174..be351680c 100644 --- a/roundcubemail/CHANGELOG +++ b/roundcubemail/CHANGELOG @@ -71,6 +71,7 @@ CHANGELOG Roundcube Webmail - jQuery 1.4.4 - Fix handling of HTML entity strings in plain text messages - Fix focused elements aren't unfocused when clicking on the list (#1487123) +- Fix error in MSSQL DDL scripts (#1487112) RELEASE 0.4.2 ------------- diff --git a/roundcubemail/SQL/mssql.initial.sql b/roundcubemail/SQL/mssql.initial.sql index 36788585f..823d1b3ae 100644 --- a/roundcubemail/SQL/mssql.initial.sql +++ b/roundcubemail/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/roundcubemail/SQL/mssql.upgrade.sql b/roundcubemail/SQL/mssql.upgrade.sql index cf0c17157..4072c25ff 100644 --- a/roundcubemail/SQL/mssql.upgrade.sql +++ b/roundcubemail/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]
|
