gpt4 book ai didi

mysql - 在 MySql 中删除未命名的外键

转载 作者:IT老高 更新时间:2023-10-29 00:10:54 24 4
gpt4 key购买 nike

如果创建的外键没有名字,MySql 会给它一个默认的。例如,对于表“Test”,外键将命名为“test_ibfk_1”。当我使用此名称在本地删除外键时,它就像一个魅力,但在开发服务器上它失败并显示 errno: 152。

我知道这个名字是区分大小写的,但是无论是小写还是大写,结果都是一样的。

我的问题:依赖默认名称来操作约束是否安全(至少在 MySql 中)?

提前致谢!

最佳答案

您需要知道外键的名称。如果创建时没有名称,则会自动生成名称。您应该获得有关外键的信息。

使用这些查询之一来获取外键名称 -

SELECT
constraint_name
FROM
information_schema.REFERENTIAL_CONSTRAINTS
WHERE
constraint_schema = <'db_name'> AND table_name = <'table_name'>;


SELECT *
FROM
information_schema.KEY_COLUMN_USAGE
WHERE
constraint_schema = <'db_name'> AND table_name = <'table_name'> AND
referenced_table_name IS NOT NULL;

...并使用 ALTER TABLE <table_name> DROP INDEX <fk_name>;删除外键。

关于mysql - 在 MySql 中删除未命名的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13856946/

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