搜查,但现在更多的困惑,然后当我开始。我有2个表,AlertsTable
和AlertRecipientsTable
。
我想补充一个级联删除时AlertRecipientID
被删除,上面写着(该人已被删除),我希望它会自动删除AlertsTable
具有该删除AlertRecipientID
所有记录。
AlertRecipientID
是两个表中的字段。我还是想保持而不必警报记录设置为该收件人创建警报接收方的能力。
我对如何建立这一约束在MySQL困惑。已经证实了我所有的表都配置为InnoDB和正在使用的MySQL版本,36年6月5日-CLL-射血。
例:
AlertsTable:
AlertID AlertType AlertName AlertUserID AlertRecipientID AlertDateTimeAdded
1 1 Test 1 56 2018-01-07 14:29:39
AlertRecipientsTable:
AlertRecipientID AlertRecipientUserID AlertRecipientFirstName AlertRecipientLastName
56 1 John Doe
当我与John Doe
RecipientID
删除56
,我想它删除AlertsTable
命名Test
的条目。
https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
ALTER TABLE AlertsTable
ADD FOREIGN KEY (AlertRecipientID)
REFERENCES AlertRecipientsTable (AlertRecipientID)
ON UPDATE CASCADE ON DELETE CASCADE;
这应该与您在您的文章中描述的工作。外键约束是对AlertsTable
意义上没有记录可与不AlertRecipientID
存在的AlertRecipientsTable
该表存在,但你可以自由地在该表收件人不具有AlertsTable
中的任何条目