mysql 参照完整性_mysql参照完整性

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

MYSQL支持数据库的参照完整性约束吗?

有四个表:

表一的主键是的表二外键

表二的主键是表三的外键

表三的主键是表四的外键

请问:

如果:删除表一

表2 3 4 会自动删除吗?

---------------------------------------------------------------

从 3.23.43b 开始 InnoDB 支持外键约束特性。

InnoDB 表类型第一次为 MySQL 提供了外键约束以保证你的数据完整性。

InnoDB 中外键约束的定义语法如下所示:

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)

REFERENCES table_name (index_col_name, ...)

[ON DELETE {CASCADE ¦ SET NULL ¦ NO ACTION

¦ RESTRICT}]

[ON UPDATE {CASCADE ¦ SET NULL ¦ NO ACTION

¦ RESTRICT}]

从 3.23.50 开始,

可能联合 ON DELETE CASCADE 或 ON DELETE SET NULL 子句与外键约束一同作用。

相应的 ON UPDATE 选项将从 4.0.8 开始支持。

如果 ON DELETE CASCADE 被指定,当主表中的记录行被删除时,

InnoDB 将自动删除子表中被引用键值与主表中相对应的外键值相同的记录。

如果 ON DELETE SET NULL 被指定,子表中的外键对应行将被设置为 NULL 值。

示例:

CREATE TABLE parent(id INT NOT NULL,

PRIMARY KEY (id)) TYPE=INNODB;

CREATE TABLE child(id INT, parent_id INT,

INDEX par_ind (parent_id),

FOREIGN KEY (parent_id) REFERENCES parent(id)

ON DELETE CASCADE

) TYPE=INNODB;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值