SET FOREIGN_KEY_CHECKS=0; SHOW CREATE TABLE table_name; SET FOREIGN_KEY_CHECKS=1;
以上代码可以很方便地查看特定表的外键约束。首先,使用SET FOREIGN_KEY_CHECKS=0禁用外键约束检查,否则无法反映出外键约束的存在。然后使用SHOW CREATE TABLE语句查看特定表的定义,可以查看表中各种约束,包括外键约束。最后,使用SET FOREIGN_KEY_CHECKS=1开启外键约束检查。
如果数据库中存在外键约束符合标准设置,则会在SHOW CREATE TABLE语句的输出中看到FOREIGN KEY约束。但如果没有找到FOREIGN KEY,应该检查表结构或检查使用以下语句创建表时是否正确设置了外键约束。
CREATE TABLE table_name( ... FOREIGN KEY (column_name) REFERENCES parent_table (column_name) ON UPDATE CASCADE ON DELETE CASCADE ... );
如果还存在外键约束问题,可以使用以下语句快速查看所有表的外键约束。通过搜索FOREIGN KEY关键字并将其与表名相关联,可以查找到所有表中的外键约束。
SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA='database_name' AND REFERENCED_TABLE_NAME!='' ORDER BY TABLE_NAME,CONSTRAINT_NAME;
使用以上方法,可以快速地查看MySQL数据库中的外键约束设置,方便进行问题排查及修改。