对于规范化表,强制它们之间的外键关系是必要且有用的.更改PK字段的值有点罕见,特别是如果auto_increment它发生,但是当它发生时,更改会在规范化的FK关系中向下级联.
同样,ON UPDATE DELETE通过所有1:1FK关系级联行删除非常有用,因此无需从应用程序代码执行多次删除.无论如何,这样做很容易出错.
考虑以下:
table customers:
custid INT NOT NULL PRIMARY KEY,
custname VARCHAR(64) NOT NULL
table orders:
orderid INT NOT NULL PRIMARY KEY,
custid INT NOT NULL,
FOREIGN KEY (custid) REFERENCES customers (custid) ON UPDATE CASCADE ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)
假设您需要合并来自两个数据库的记录,但这会导致PK冲突.您现在可以安全地更新其中一个数据库中的所有PK custid,customers并且所有关联的订单会自动与新ID重新关联.
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |