如何建立外键约束在MySQL中的级联删除?

问题描述 投票:-1回答:1

搜查,但现在更多的困惑,然后当我开始。我有2个表,AlertsTableAlertRecipientsTable

我想补充一个级联删除时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的条目。

mysql foreign-keys cascading-deletes
1个回答
1
投票

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中的任何条目

© www.soinside.com 2019 - 2024. All rights reserved.