如何选择外键选项以获得更好的数据库

时间:2017-09-29 07:32:56

标签: mysql

条件是这样的 我有客户表

id_cus ---> PK
name
address
phone

我有交易表

no_trans ---> PK
id_cus ---> FK
datetime
payment

哪个最佳解决方案ON DELETE事务表的外键选项?

1 个答案:

答案 0 :(得分:0)

对于ON DELETE来说,没有最好的选择。这取决于你需要它。这些是你的选择:

CASCADE:从父表中删除行,并自动删除或更新子表中的匹配行。

SET NULL:从父表中删除行,并将子表中的外键列设置为NULL。如果您指定SET NULL操作,请确保您没有将子表中的列声明为NOT NULL。

RESTRICT:拒绝父表的删除操作。 RESTRICT与省略ON DELETE子句相同。

ON DELETE的默认操作始终为“RESTRICT”。

https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

希望这有帮助!