mysql外键引用自己_mysql - 如何更改外键引用操作? (行为)

老问题,但添加答案,以便一个人可以得到帮助

它的两步过程:

假设,UserDetails具有列名为Users的外键,约束名称为fk_name,并且table2是带有键t2的表(在我的图中类似于下面的内容)。

table1 [ fk_table2_id ] --> table2 [t2]

第一步,DROP旧CONSTRAINT :(参考)

ALTER TABLE `table1`

DROP FOREIGN KEY `fk_name`;

删除通知约束,不删除列

第二步,添加新的CONSTRAINT:

ALTER TABLE `table1`

ADD CONSTRAINT `fk_name`

FOREIGN KEY (`fk_table2_id`) REFERENCES `table2` (`t2`) ON DELETE CASCADE;

添加约束,列已经存在

例:

我有一个UserDetails表是指Users表:

mysql> SHOW CREATE TABLE UserDetails;

:

:

`User_id` int(11) DEFAULT NULL,

PRIMARY KEY (`Detail_id`),

KEY `FK_User_id` (`User_id`),

CONSTRAINT `FK_User_id` FOREIGN KEY (`User_id`) REFERENCES `Users` (`User_id`)

:

:

第一步:

mysql> ALTER TABLE `UserDetails` DROP FOREIGN KEY `FK_User_id`;

Query OK, 1 row affected (0.07 sec)

第二步:

mysql> ALTER TABLE `UserDetails` ADD CONSTRAINT `FK_User_id`

-> FOREIGN KEY (`User_id`) REFERENCES `Users` (`User_id`) ON DELETE CASCADE;

Query OK, 1 row affected (0.02 sec)

结果:

mysql> SHOW CREATE TABLE UserDetails;

:

:

`User_id` int(11) DEFAULT NULL,

PRIMARY KEY (`Detail_id`),

KEY `FK_User_id` (`User_id`),

CONSTRAINT `FK_User_id` FOREIGN KEY (`User_id`) REFERENCES

`Users` (`User_id`) ON DELETE CASCADE

:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值