0

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

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

至少找到所有的外键

@peterm 回答后更新:

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

2 回答 2

1

您可以使用INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

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

DELETE_RULE领域是你要找的。

于 2013-04-12T15:52:21.887 回答
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>;
于 2013-04-12T15:37:21.013 回答