如何从数据库中找到所有带有'Restrict'值的onDelete子句?

时间:2013-04-12 15:25:03

标签: mysql sql clause

我需要在onDelete数据库上找到并修复外键的所有MySQL子句,因为所有这些子句现在都是默认RESTRICT

这可以通过MySQL查询完成吗?

至少找到所有外键

@peterm回答后更新:

SELECT * FROM information_schema.`REFERENTIAL_CONSTRAINTS` 
WHERE CONSTRAINT_SCHEMA = '%database_name%' AND delete_rule = 'RESTRICT';

2 个答案:

答案 0 :(得分:1)

您可以使用INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

  

REFERENTIAL_CONSTRAINTS表提供有关外键的信息。

DELETE_RULE字段是您正在寻找的。

答案 1 :(得分:0)

要查找数据库表中的所有外键,您可能需要尝试以下SQL查询:

use INFORMATION_SCHEMA;

select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from KEY_COLUMN_USAGE where
REFERENCED_TABLE_NAME = '<mytable>';

或者您也可以尝试执行以下查询来显示表的创建方式:

SHOW CREATE TABLE <mytable>;