| 1 | CREATE TABLE [dbo].[cache] ( |
|---|
| 2 | [cache_id] [int] IDENTITY (1, 1) NOT NULL , |
|---|
| 3 | [user_id] [int] NOT NULL , |
|---|
| 4 | [cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 5 | [created] [datetime] NOT NULL , |
|---|
| 6 | [data] [text] COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 7 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 8 | GO |
|---|
| 9 | |
|---|
| 10 | CREATE TABLE [dbo].[cache_index] ( |
|---|
| 11 | [user_id] [int] NOT NULL , |
|---|
| 12 | [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 13 | [changed] [datetime] NOT NULL , |
|---|
| 14 | [valid] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 15 | [data] [text] COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 16 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 17 | GO |
|---|
| 18 | |
|---|
| 19 | CREATE TABLE [dbo].[cache_thread] ( |
|---|
| 20 | [user_id] [int] NOT NULL , |
|---|
| 21 | [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 22 | [changed] [datetime] NOT NULL , |
|---|
| 23 | [data] [text] COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 24 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 25 | GO |
|---|
| 26 | |
|---|
| 27 | CREATE TABLE [dbo].[cache_messages] ( |
|---|
| 28 | [user_id] [int] NOT NULL , |
|---|
| 29 | [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 30 | [uid] [int] NOT NULL , |
|---|
| 31 | [changed] [datetime] NOT NULL , |
|---|
| 32 | [data] [text] COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 33 | [flags] [int](1) NOT NULL , |
|---|
| 34 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 35 | GO |
|---|
| 36 | |
|---|
| 37 | CREATE TABLE [dbo].[contacts] ( |
|---|
| 38 | [contact_id] [int] IDENTITY (1, 1) NOT NULL , |
|---|
| 39 | [user_id] [int] NOT NULL , |
|---|
| 40 | [changed] [datetime] NOT NULL , |
|---|
| 41 | [del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 42 | [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 43 | [email] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 44 | [firstname] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 45 | [surname] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 46 | [vcard] [text] COLLATE Latin1_General_CI_AI NULL , |
|---|
| 47 | [words] [text] COLLATE Latin1_General_CI_AI NULL |
|---|
| 48 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 49 | GO |
|---|
| 50 | |
|---|
| 51 | CREATE TABLE [dbo].[contactgroups] ( |
|---|
| 52 | [contactgroup_id] [int] IDENTITY (1, 1) NOT NULL , |
|---|
| 53 | [user_id] [int] NOT NULL , |
|---|
| 54 | [changed] [datetime] NOT NULL , |
|---|
| 55 | [del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 56 | [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 57 | ) ON [PRIMARY] |
|---|
| 58 | GO |
|---|
| 59 | |
|---|
| 60 | CREATE TABLE [dbo].[contactgroupmembers] ( |
|---|
| 61 | [contactgroup_id] [int] NOT NULL , |
|---|
| 62 | [contact_id] [int] NOT NULL , |
|---|
| 63 | [created] [datetime] NOT NULL |
|---|
| 64 | ) ON [PRIMARY] |
|---|
| 65 | GO |
|---|
| 66 | |
|---|
| 67 | CREATE TABLE [dbo].[identities] ( |
|---|
| 68 | [identity_id] [int] IDENTITY (1, 1) NOT NULL , |
|---|
| 69 | [user_id] [int] NOT NULL , |
|---|
| 70 | [changed] [datetime] NOT NULL , |
|---|
| 71 | [del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 72 | [standard] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 73 | [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 74 | [organization] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 75 | [email] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 76 | [reply-to] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 77 | [bcc] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 78 | [signature] [text] COLLATE Latin1_General_CI_AI NULL, |
|---|
| 79 | [html_signature] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 80 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 81 | GO |
|---|
| 82 | |
|---|
| 83 | CREATE TABLE [dbo].[session] ( |
|---|
| 84 | [sess_id] [varchar] (32) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 85 | [created] [datetime] NOT NULL , |
|---|
| 86 | [changed] [datetime] NULL , |
|---|
| 87 | [ip] [varchar] (40) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 88 | [vars] [text] COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 89 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 90 | GO |
|---|
| 91 | |
|---|
| 92 | CREATE TABLE [dbo].[users] ( |
|---|
| 93 | [user_id] [int] IDENTITY (1, 1) NOT NULL , |
|---|
| 94 | [username] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 95 | [mail_host] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 96 | [alias] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 97 | [created] [datetime] NOT NULL , |
|---|
| 98 | [last_login] [datetime] NULL , |
|---|
| 99 | [language] [varchar] (5) COLLATE Latin1_General_CI_AI NULL , |
|---|
| 100 | [preferences] [text] COLLATE Latin1_General_CI_AI NULL |
|---|
| 101 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 102 | GO |
|---|
| 103 | |
|---|
| 104 | CREATE TABLE [dbo].[dictionary] ( |
|---|
| 105 | [user_id] [int] , |
|---|
| 106 | [language] [varchar] (5) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 107 | [data] [text] COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 108 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 109 | GO |
|---|
| 110 | |
|---|
| 111 | CREATE TABLE [dbo].[searches] ( |
|---|
| 112 | [search_id] [int] IDENTITY (1, 1) NOT NULL , |
|---|
| 113 | [user_id] [int] NOT NULL , |
|---|
| 114 | [type] [tinyint] NOT NULL , |
|---|
| 115 | [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , |
|---|
| 116 | [data] [text] COLLATE Latin1_General_CI_AI NOT NULL |
|---|
| 117 | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
|---|
| 118 | GO |
|---|
| 119 | |
|---|
| 120 | ALTER TABLE [dbo].[cache] WITH NOCHECK ADD |
|---|
| 121 | PRIMARY KEY CLUSTERED |
|---|
| 122 | ( |
|---|
| 123 | [cache_id] |
|---|
| 124 | ) ON [PRIMARY] |
|---|
| 125 | GO |
|---|
| 126 | |
|---|
| 127 | ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD |
|---|
| 128 | PRIMARY KEY CLUSTERED |
|---|
| 129 | ( |
|---|
| 130 | [user_id],[mailbox] |
|---|
| 131 | ) ON [PRIMARY] |
|---|
| 132 | GO |
|---|
| 133 | |
|---|
| 134 | ALTER TABLE [dbo].[cache_thread] WITH NOCHECK ADD |
|---|
| 135 | PRIMARY KEY CLUSTERED |
|---|
| 136 | ( |
|---|
| 137 | [user_id],[mailbox] |
|---|
| 138 | ) ON [PRIMARY] |
|---|
| 139 | GO |
|---|
| 140 | |
|---|
| 141 | ALTER TABLE [dbo].[cache_messages] WITH NOCHECK ADD |
|---|
| 142 | PRIMARY KEY CLUSTERED |
|---|
| 143 | ( |
|---|
| 144 | [user_id],[mailbox],[uid] |
|---|
| 145 | ) ON [PRIMARY] |
|---|
| 146 | GO |
|---|
| 147 | |
|---|
| 148 | ALTER TABLE [dbo].[contacts] WITH NOCHECK ADD |
|---|
| 149 | CONSTRAINT [PK_contacts_contact_id] PRIMARY KEY CLUSTERED |
|---|
| 150 | ( |
|---|
| 151 | [contact_id] |
|---|
| 152 | ) ON [PRIMARY] |
|---|
| 153 | GO |
|---|
| 154 | |
|---|
| 155 | ALTER TABLE [dbo].[contactgroups] WITH NOCHECK ADD |
|---|
| 156 | CONSTRAINT [PK_contactgroups_contactgroup_id] PRIMARY KEY CLUSTERED |
|---|
| 157 | ( |
|---|
| 158 | [contactgroup_id] |
|---|
| 159 | ) ON [PRIMARY] |
|---|
| 160 | GO |
|---|
| 161 | |
|---|
| 162 | ALTER TABLE [dbo].[contactgroupmembers] WITH NOCHECK ADD |
|---|
| 163 | CONSTRAINT [PK_contactgroupmembers_id] PRIMARY KEY CLUSTERED |
|---|
| 164 | ( |
|---|
| 165 | [contactgroup_id], [contact_id] |
|---|
| 166 | ) ON [PRIMARY] |
|---|
| 167 | GO |
|---|
| 168 | |
|---|
| 169 | ALTER TABLE [dbo].[identities] WITH NOCHECK ADD |
|---|
| 170 | PRIMARY KEY CLUSTERED |
|---|
| 171 | ( |
|---|
| 172 | [identity_id] |
|---|
| 173 | ) ON [PRIMARY] |
|---|
| 174 | GO |
|---|
| 175 | |
|---|
| 176 | ALTER TABLE [dbo].[session] WITH NOCHECK ADD |
|---|
| 177 | CONSTRAINT [PK_session_sess_id] PRIMARY KEY CLUSTERED |
|---|
| 178 | ( |
|---|
| 179 | [sess_id] |
|---|
| 180 | ) ON [PRIMARY] |
|---|
| 181 | GO |
|---|
| 182 | |
|---|
| 183 | ALTER TABLE [dbo].[users] WITH NOCHECK ADD |
|---|
| 184 | CONSTRAINT [PK_users_user_id] PRIMARY KEY CLUSTERED |
|---|
| 185 | ( |
|---|
| 186 | [user_id] |
|---|
| 187 | ) ON [PRIMARY] |
|---|
| 188 | GO |
|---|
| 189 | |
|---|
| 190 | ALTER TABLE [dbo].[searches] WITH NOCHECK ADD |
|---|
| 191 | CONSTRAINT [PK_searches_search_id] PRIMARY KEY CLUSTERED |
|---|
| 192 | ( |
|---|
| 193 | [search_id] |
|---|
| 194 | ) ON [PRIMARY] |
|---|
| 195 | GO |
|---|
| 196 | |
|---|
| 197 | ALTER TABLE [dbo].[cache] ADD |
|---|
| 198 | CONSTRAINT [DF_cache_user_id] DEFAULT ('0') FOR [user_id], |
|---|
| 199 | CONSTRAINT [DF_cache_cache_key] DEFAULT ('') FOR [cache_key], |
|---|
| 200 | CONSTRAINT [DF_cache_created] DEFAULT (getdate()) FOR [created] |
|---|
| 201 | GO |
|---|
| 202 | |
|---|
| 203 | CREATE INDEX [IX_cache_user_id] ON [dbo].[cache]([user_id]) ON [PRIMARY] |
|---|
| 204 | GO |
|---|
| 205 | |
|---|
| 206 | CREATE INDEX [IX_cache_cache_key] ON [dbo].[cache]([cache_key]) ON [PRIMARY] |
|---|
| 207 | GO |
|---|
| 208 | |
|---|
| 209 | CREATE INDEX [IX_cache_created] ON [dbo].[cache]([created]) ON [PRIMARY] |
|---|
| 210 | GO |
|---|
| 211 | |
|---|
| 212 | ALTER TABLE [dbo].[cache_index] ADD |
|---|
| 213 | CONSTRAINT [DF_cache_index_changed] DEFAULT (getdate()) FOR [changed], |
|---|
| 214 | CONSTRAINT [DF_cache_index_valid] DEFAULT ('0') FOR [valid] |
|---|
| 215 | GO |
|---|
| 216 | |
|---|
| 217 | CREATE INDEX [IX_cache_index_user_id] ON [dbo].[cache_index]([user_id]) ON [PRIMARY] |
|---|
| 218 | GO |
|---|
| 219 | |
|---|
| 220 | ALTER TABLE [dbo].[cache_thread] ADD |
|---|
| 221 | CONSTRAINT [DF_cache_thread_changed] DEFAULT (getdate()) FOR [changed] |
|---|
| 222 | GO |
|---|
| 223 | |
|---|
| 224 | CREATE INDEX [IX_cache_thread_user_id] ON [dbo].[cache_thread]([user_id]) ON [PRIMARY] |
|---|
| 225 | GO |
|---|
| 226 | |
|---|
| 227 | ALTER TABLE [dbo].[cache_messages] ADD |
|---|
| 228 | CONSTRAINT [DF_cache_messages_changed] DEFAULT (getdate()) FOR [changed], |
|---|
| 229 | CONSTRAINT [DF_cache_messages_flags] DEFAULT (0) FOR [flags], |
|---|
| 230 | GO |
|---|
| 231 | |
|---|
| 232 | CREATE INDEX [IX_cache_messages_user_id] ON [dbo].[cache_messages]([user_id]) ON [PRIMARY] |
|---|
| 233 | GO |
|---|
| 234 | |
|---|
| 235 | ALTER TABLE [dbo].[contacts] ADD |
|---|
| 236 | CONSTRAINT [DF_contacts_user_id] DEFAULT (0) FOR [user_id], |
|---|
| 237 | CONSTRAINT [DF_contacts_changed] DEFAULT (getdate()) FOR [changed], |
|---|
| 238 | CONSTRAINT [DF_contacts_del] DEFAULT ('0') FOR [del], |
|---|
| 239 | CONSTRAINT [DF_contacts_name] DEFAULT ('') FOR [name], |
|---|
| 240 | CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email], |
|---|
| 241 | CONSTRAINT [DF_contacts_firstname] DEFAULT ('') FOR [firstname], |
|---|
| 242 | CONSTRAINT [DF_contacts_surname] DEFAULT ('') FOR [surname], |
|---|
| 243 | CONSTRAINT [CK_contacts_del] CHECK ([del] = '1' or [del] = '0') |
|---|
| 244 | GO |
|---|
| 245 | |
|---|
| 246 | CREATE INDEX [IX_contacts_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY] |
|---|
| 247 | GO |
|---|
| 248 | |
|---|
| 249 | ALTER TABLE [dbo].[contactgroups] ADD |
|---|
| 250 | CONSTRAINT [DF_contactgroups_user_id] DEFAULT (0) FOR [user_id], |
|---|
| 251 | CONSTRAINT [DF_contactgroups_changed] DEFAULT (getdate()) FOR [changed], |
|---|
| 252 | CONSTRAINT [DF_contactgroups_del] DEFAULT ('0') FOR [del], |
|---|
| 253 | CONSTRAINT [DF_contactgroups_name] DEFAULT ('') FOR [name], |
|---|
| 254 | CONSTRAINT [CK_contactgroups_del] CHECK ([del] = '1' or [del] = '0') |
|---|
| 255 | GO |
|---|
| 256 | |
|---|
| 257 | CREATE INDEX [IX_contactgroups_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY] |
|---|
| 258 | GO |
|---|
| 259 | |
|---|
| 260 | ALTER TABLE [dbo].[contactgroupmembers] ADD |
|---|
| 261 | CONSTRAINT [DF_contactgroupmembers_contactgroup_id] DEFAULT (0) FOR [contactgroup_id], |
|---|
| 262 | CONSTRAINT [DF_contactgroupmembers_contact_id] DEFAULT (0) FOR [contact_id], |
|---|
| 263 | CONSTRAINT [DF_contactgroupmembers_created] DEFAULT (getdate()) FOR [created] |
|---|
| 264 | GO |
|---|
| 265 | |
|---|
| 266 | CREATE INDEX [IX_contactgroupmembers_contact_id] ON [dbo].[contactgroupmembers]([contact_id]) ON [PRIMARY] |
|---|
| 267 | GO |
|---|
| 268 | |
|---|
| 269 | ALTER TABLE [dbo].[identities] ADD |
|---|
| 270 | CONSTRAINT [DF_identities_user] DEFAULT ('0') FOR [user_id], |
|---|
| 271 | CONSTRAINT [DF_identities_del] DEFAULT ('0') FOR [del], |
|---|
| 272 | CONSTRAINT [DF_identities_standard] DEFAULT ('0') FOR [standard], |
|---|
| 273 | CONSTRAINT [DF_identities_name] DEFAULT ('') FOR [name], |
|---|
| 274 | CONSTRAINT [DF_identities_organization] DEFAULT ('') FOR [organization], |
|---|
| 275 | CONSTRAINT [DF_identities_email] DEFAULT ('') FOR [email], |
|---|
| 276 | CONSTRAINT [DF_identities_reply] DEFAULT ('') FOR [reply-to], |
|---|
| 277 | CONSTRAINT [DF_identities_bcc] DEFAULT ('') FOR [bcc], |
|---|
| 278 | CONSTRAINT [DF_identities_html_signature] DEFAULT ('0') FOR [html_signature], |
|---|
| 279 | CHECK ([standard] = '1' or [standard] = '0'), |
|---|
| 280 | CHECK ([del] = '1' or [del] = '0') |
|---|
| 281 | GO |
|---|
| 282 | |
|---|
| 283 | CREATE INDEX [IX_identities_user_id] ON [dbo].[identities]([user_id]) ON [PRIMARY] |
|---|
| 284 | GO |
|---|
| 285 | |
|---|
| 286 | ALTER TABLE [dbo].[session] ADD |
|---|
| 287 | CONSTRAINT [DF_session_sess_id] DEFAULT ('') FOR [sess_id], |
|---|
| 288 | CONSTRAINT [DF_session_created] DEFAULT (getdate()) FOR [created], |
|---|
| 289 | CONSTRAINT [DF_session_ip] DEFAULT ('') FOR [ip] |
|---|
| 290 | GO |
|---|
| 291 | |
|---|
| 292 | CREATE INDEX [IX_session_changed] ON [dbo].[session]([changed]) ON [PRIMARY] |
|---|
| 293 | GO |
|---|
| 294 | |
|---|
| 295 | ALTER TABLE [dbo].[users] ADD |
|---|
| 296 | CONSTRAINT [DF_users_username] DEFAULT ('') FOR [username], |
|---|
| 297 | CONSTRAINT [DF_users_mail_host] DEFAULT ('') FOR [mail_host], |
|---|
| 298 | CONSTRAINT [DF_users_alias] DEFAULT ('') FOR [alias], |
|---|
| 299 | CONSTRAINT [DF_users_created] DEFAULT (getdate()) FOR [created] |
|---|
| 300 | GO |
|---|
| 301 | |
|---|
| 302 | CREATE UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY] |
|---|
| 303 | GO |
|---|
| 304 | |
|---|
| 305 | CREATE INDEX [IX_users_alias] ON [dbo].[users]([alias]) ON [PRIMARY] |
|---|
| 306 | GO |
|---|
| 307 | |
|---|
| 308 | CREATE UNIQUE INDEX [IX_dictionary_user_language] ON [dbo].[dictionary]([user_id],[language]) ON [PRIMARY] |
|---|
| 309 | GO |
|---|
| 310 | |
|---|
| 311 | ALTER TABLE [dbo].[searches] ADD |
|---|
| 312 | CONSTRAINT [DF_searches_user] DEFAULT (0) FOR [user_id], |
|---|
| 313 | CONSTRAINT [DF_searches_type] DEFAULT (0) FOR [type], |
|---|
| 314 | GO |
|---|
| 315 | |
|---|
| 316 | CREATE UNIQUE INDEX [IX_searches_user_type_name] ON [dbo].[searches]([user_id],[type],[name]) ON [PRIMARY] |
|---|
| 317 | GO |
|---|
| 318 | |
|---|
| 319 | ALTER TABLE [dbo].[identities] ADD CONSTRAINT [FK_identities_user_id] |
|---|
| 320 | FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id]) |
|---|
| 321 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 322 | GO |
|---|
| 323 | |
|---|
| 324 | ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [FK_contacts_user_id] |
|---|
| 325 | FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id]) |
|---|
| 326 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 327 | GO |
|---|
| 328 | |
|---|
| 329 | ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id] |
|---|
| 330 | FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id]) |
|---|
| 331 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 332 | GO |
|---|
| 333 | |
|---|
| 334 | ALTER TABLE [dbo].[cache] ADD CONSTRAINT [FK_cache_user_id] |
|---|
| 335 | FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id]) |
|---|
| 336 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 337 | GO |
|---|
| 338 | |
|---|
| 339 | ALTER TABLE [dbo].[cache_index] ADD CONSTRAINT [FK_cache_index_user_id] |
|---|
| 340 | FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id]) |
|---|
| 341 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 342 | GO |
|---|
| 343 | |
|---|
| 344 | ALTER TABLE [dbo].[cache_thread] ADD CONSTRAINT [FK_cache_thread_user_id] |
|---|
| 345 | FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id]) |
|---|
| 346 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 347 | GO |
|---|
| 348 | |
|---|
| 349 | ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id] |
|---|
| 350 | FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id]) |
|---|
| 351 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 352 | GO |
|---|
| 353 | |
|---|
| 354 | ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contactgroup_id] |
|---|
| 355 | FOREIGN KEY ([contactgroup_id]) REFERENCES [dbo].[contactgroups] ([contactgroup_id]) |
|---|
| 356 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 357 | GO |
|---|
| 358 | |
|---|
| 359 | ALTER TABLE [dbo].[searches] ADD CONSTRAINT [FK_searches_user_id] |
|---|
| 360 | FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id]) |
|---|
| 361 | ON DELETE CASCADE ON UPDATE CASCADE |
|---|
| 362 | GO |
|---|
| 363 | |
|---|
| 364 | -- Use trigger instead of foreign key (#1487112) |
|---|
| 365 | -- "Introducing FOREIGN KEY constraint ... may cause cycles or multiple cascade paths." |
|---|
| 366 | CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts] |
|---|
| 367 | AFTER DELETE AS |
|---|
| 368 | DELETE FROM [dbo].[contactgroupmembers] |
|---|
| 369 | WHERE [contact_id] IN (SELECT [contact_id] FROM deleted) |
|---|
| 370 | GO |
|---|
| 371 | |
|---|