我能否知道数据库是否有 DELETE ON CASCADE
和查询?
最佳答案
是的。只需查询 INFORMATION_SCHEMA
SELECT * FROM information_schema.REFERENTIAL_CONSTRAINTS
或者更具体的
-- This query will list all constraints, their delete rule,
-- the constraint table/column list, and the referenced table
SELECT
r.CONSTRAINT_NAME,
r.DELETE_RULE,
r.TABLE_NAME,
GROUP_CONCAT(k.COLUMN_NAME SEPARATOR ', ') AS `constraint columns`,
r.REFERENCED_TABLE_NAME
FROM information_schema.REFERENTIAL_CONSTRAINTS r
JOIN information_schema.KEY_COLUMN_USAGE k
USING (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME)
-- using MySQL's GROUP BY clause. In other DB's more columns would need to be
-- specified!
GROUP BY r.CONSTRAINT_CATALOG,
r.CONSTRAINT_SCHEMA,
r.CONSTRAINT_NAME
阅读有关 REFERENTIAL_CONSTRAINTS
table in the manual 的更多信息
关于mysql - 确定表是否在 CASCADE 上有 DELETE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13134913/