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

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

其两步过程:

假设,table1具有列名为fk_table2_id的外键,约束名称为fk_name,table2使用键t2引用表(类似于下图)。

table1 [ fk_table2_id ] --> table2 [t2]

第一步,DROP老CONSTRAINT:(reference)

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

:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值