找出一个表在CASCADE上有一个DELETE [英] Figure out if a table has a DELETE on CASCADE
本文介绍了找出一个表在CASCADE上有一个DELETE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以知道数据库在查询中是否有 DELETE ON CASCADE
?
Can I know if a database have DELETE ON CASCADE
with a query?
推荐答案
是的。只需查询 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
表格
这篇关于找出一个表在CASCADE上有一个DELETE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文