今日学习笔记——MySQL外键约束

MySQLInnoDB存储引擎支持外键约束,在创建外键时,要求父表必须有对应的索引,子表在创建外键时,也会自动的创建对应的索引。

关联外键

 建表时关联外键

[CONSTRAINT [symbol]] FOREIGN KEY
[idx_name] (idx_col_name, ...)
REFERENCES tab_name (idx_col_name,...)
[ON DELETE ref_op]
[ON UPDATE ref_op]

 alter关联

ALTER TABLE child_tab ADD CONSTRAINT [symbol] FOREIGN KEY(idx_col_named) REFERENCES parent_tab(idx_col_name) [ON DELETE ref_op] [ON UPDATE ref_op]

ref_op可选值

RESTRICT | CASCADE | SET NULL | NO ACTION

CASCADE :

从父表中删除或更新对应的行,同时自动的删除或更新自表中匹配的行。ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支持。

SET NULL :

从父表中删除或更新对应的行,同时将子表中的外键列设为空。注意,这些在外键列没有被设为NOT NULL时才有效。ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所支持。

NO ACTION :

InnoDB拒绝删除或者更新父表。

 RESTRICT :

拒绝删除或者更新父表。指定RESTRICT(或者NO ACTION)和忽略ON DELETE或者ON UPDATE选项的效果是一样的。

SET DEFAULT :

 InnoDB目前不支持。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值