gpt4 book ai didi

mysql - 使用 MySQL 更新所有表中的外键

转载 作者:行者123 更新时间:2023-11-29 07:47:08 24 4
gpt4 key购买 nike

我有 35 个带有 country_id 的 table

我想执行以下操作(伪代码)

UPDATE {all tables containing country_id} 
SET country_id = 1
WHERE country_id = 2

有人可以帮忙构建这个sql吗?

提前致谢。

最佳答案

也许我的代码可以帮助您找到解决方案。

我也遇到了和你类似的问题。我的数据库有 76 个 users.id 外键,我需要将所有 ID 增加 10 个。最简单的方法是将外键 ON UPDATE 状态设置为级联。但是我在创建所有FK时犯了错误,所以所有这些都设置为NO ACTION。

幸运的是我找到了解决方案。此代码生成 SQL 查询来更新数据库中引用到 user.id 的所有 FK:

SELECT
CONCAT("
ALTER TABLE `",TABLE_NAME,"`
DROP FOREIGN KEY `",CONSTRAINT_NAME,"`;
ALTER TABLE `",TABLE_NAME,"`
ADD CONSTRAINT `",CONSTRAINT_NAME,"` FOREIGN KEY (`",COLUMN_NAME,"`)
REFERENCES `users` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE;
")
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'users' AND REFERENCED_COLUMN_NAME = 'id';

关于mysql - 使用 MySQL 更新所有表中的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com