gpt4 book ai didi

mysql - 查询查找外键

转载 作者:可可西里 更新时间:2023-11-01 06:36:47 26 4
gpt4 key购买 nike

我有一个数据库,我需要删除一些外键,但我事先不知道外键是否仍然存在。

我找到了一些可以解决问题的存储过程 ( http://forums.mysql.com/read.php?97,218825,247526 ),但我不想为此创建存储过程。

我曾尝试在存储过程中使用查询,但在使用“IF EXISTS(SELECT NULL FROM 等...等...)时出现错误

我可以只在存储过程中使用 IF EXISTS 吗?


现在,我唯一能跑的就是

SELECT * FROM information_schema.TABLE_CONSTRAINTS 
WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = 'myschema'
AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'mytable';

我也试过了

IF EXISTS (SELECT NULL FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND CONSTRAINT_NAME = parm_key_name) THEN
(...) do something (...)
END IF;

但是我得到一个你的SQL语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“IF”附近使用的正确语法

我在论坛中通过简单查询查找示例,但我不明白为什么这不起作用。

注意:编辑以更正损坏的链接

最佳答案

你需要连接到Information scheme,你可以在这个表中找到所有关于主键和外键的信息

SELECT * FROM information_schema.TABLE_CONSTRAINTS T;

您需要成为 ROOT 用户才能访问 information_schema

通过这张表可以查到表、db、是否有外键。

如果您不想使用 IF EXIST 和存储过程,希望这对您有所帮助。但我确定您可以使用 IF EXIST 可用于非存储过程查询....

关于mysql - 查询查找外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7765820/

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