gpt4 book ai didi

MySQL:获取约束名称并将其放入一条语句中

转载 作者:行者123 更新时间:2023-11-29 07:33:20 25 4
gpt4 key购买 nike

我从以下位置获取约束名称:

SELECT
constraint_name
FROM
information_schema.REFERENTIAL_CONSTRAINTS
WHERE
constraint_schema = 'db' AND table_name = 'table';

然后把它从 table 上扔掉。它在本地计算机上手动完成时有效。现在它扰乱了我的 Jenkins 构建的数据库迁移脚本。
有没有办法在一个语句中做到这一点?

Update
Following query gave me Access denied for user root@localhost

DELETE
FROM
information_schema.REFERENTIAL_CONSTRAINTS
WHERE
constraint_schema = 'db' AND table_name = 'table';

最佳答案

自动生成要运行的放置约束:

SELECT concat('ALTER TABLE ', TABLE_NAME, ' DROP FOREIGN KEY ', CONSTRAINT_NAME, ';') as theString
FROM information_schema.key_column_usage
WHERE CONSTRAINT_SCHEMA = 'so_gibberish'
AND referenced_table_name IS NOT NULL;

+---------------------------------------------------+
| theString |
+---------------------------------------------------+
| ALTER TABLE fc_junction DROP FOREIGN KEY fc_cat; |
| ALTER TABLE fc_junction DROP FOREIGN KEY fc_food; |
+---------------------------------------------------+

它会自动生成要运行的字符串。必要时按顺序按摩。然后你就走吧。请注意,在 Workbench/sqlyog 中,您当然不会有表格栏输出。

关于MySQL:获取约束名称并将其放入一条语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31818811/

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