HTD*_*chy 47 mysql innodb phpmyadmin relational-database
我想在新项目中开始使用表关系.
经过一些谷歌搜索后,我得到了2个表作为InnoDB:
我要链接的键是
- > users-> userid(primary) - > sessions-> userid(index)
我在这个过程中唯一不理解的是"On update"和"On delete"的不同设置
这里的选项是:
我基本上希望在完全删除用户时删除会话中的数据这个会话只会在我的会话管理器检测到到期时删除...
因此,如果有人能告诉我这些选项是做什么的,那将非常感激.
Ted*_*opp 120
CASCADE将在父级更改时传播更改.(如果删除行,则引用该行的约束表中的行也将被删除,等等)
SET NULL 当父行消失时,将列值设置为NULL.
RESTRICT 导致父行的尝试DELETE失败.
编辑:您没有询问它们,但SQL标准定义了另外两个动作:SET DEFAULT和NO ACTION.在MySQL中,NO ACTION相当于RESTRICT.(在某些DBMS,NO ACTION是一个延期检查,但在MySQL的所有检查是立竿见影的.)MySQL解析程序接受SET DEFAULT,但无论是InnoDB和NDB引擎拒绝那些语句,所以SET DEFAULT实际上不能用于任何一个ON UPDATE或ON DELETE约束.
另请注意,级联外键操作不会激活MySQL中的触发器.
Jay*_*tel 20
包含外键的表称为引用或子表,包含候选键的表称为引用表或父表.
设置NULL:删除父表行时将列值设置为NULL.
CASCADE:CASCADE将在父项更改时传播更改.如果删除行,则引用该行的约束表中的行也将被删除,等等.
RESTRICT:限制的原因,你不能删除一个给定的父行,如果一个子行存在引用,该父行的值.
没有行动:没有行动和限制是非常相似的.当在引用的表上执行UPDATE或DELETE语句时,DBMS在语句执行结束时验证没有违反任何引用关系.简而言之,如果父行删除或更新,则无需担心.
| 归档时间: |
|
| 查看次数: |
65669 次 |
| 最近记录: |