我需要在数据库中找到并修复所有onDelete
外键子句MySQL
,因为它们现在都是默认的RESTRICT
。
这可以通过 MySQL 查询来完成吗?
至少找到所有的外键
@peterm 回答后更新:
SELECT * FROM information_schema.`REFERENTIAL_CONSTRAINTS`
WHERE CONSTRAINT_SCHEMA = '%database_name%' AND delete_rule = 'RESTRICT';
您可以使用INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
REFERENTIAL_CONSTRAINTS 表提供有关外键的信息。
DELETE_RULE
领域是你要找的。
要查找数据库表中的所有外键,您可能需要尝试以下 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>;