Mar*_* AJ 4 mysql sql foreign-keys
有4种情况:(例如我在谈论ON DELETE)
CASCADE:引用行将与引用行一起自动删除。SET NULL:引用记录的值将与引用记录一起NULL自动设置。NO ACTION: 引用行被删除后,引用行不会有任何变化。RESTRICT:{我无法理解它的概念}为此我多次阅读文档,但仍然无法理解是什么RESTRICT。你可以请某人通过一个例子来解释它吗?
我在某处读过NO ACTION,RESTRICT在 MySQL 中也一样。真的吗?
RESTRICT:不允许删除此(父)记录而不删除相关记录(从中引用外键的记录)
例如,对于这些表:
parent:
ID NAME
1 AAAA
2 BBBBB
Run Code Online (Sandbox Code Playgroud)
child:
ID PARENT_ID
1 1
2 1
3 2
Run Code Online (Sandbox Code Playgroud)
我们可以期待以下行为:
ID NAME
1 AAAA
2 BBBBB
Run Code Online (Sandbox Code Playgroud)
如果我们AAA从父项中删除,它将:删除子项中的条目 1 和 2
ID PARENT_ID
1 1
2 1
3 2
Run Code Online (Sandbox Code Playgroud)
如果我们AAA从父项中删除,它将:将子项中的条目 1 和 2的列 PARENT_ID 设置为空
ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)
如果我们AAA从父项中删除,它将:将列 PARENT_ID设置为子项中条目 1 和 2的默认值
ON DELETE SET NULL
Run Code Online (Sandbox Code Playgroud)
如果我们AAA从父项中删除,它将:允许删除并且对子项中的条目没有任何操作
ON DELETE SET DEFAULT
Run Code Online (Sandbox Code Playgroud)
我们不能AAA在不更新或删除 child 中的条目 1 和 2 的情况下从 parent 中删除
| 归档时间: |
|
| 查看次数: |
6415 次 |
| 最近记录: |