我很想知道是否有办法知道哪些列已使用 mysql 设置为 CASCADE。做DESC TABLE;似乎没有产生任何明显的东西。有什么建议么?
最佳答案
从 MySQL 5.1.10 开始,您可以通过将 INFORMATION_SCHEMA
tables 加入 REFERENTIAL_CONSTRAINTS
来从 KEY_COLUMN_USAGE
获取此信息:
SELECT kcu.COLUMN_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
USING (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME)
WHERE 'CASCADE' IN (rc.DELETE_RULE, rc.UPDATE_RULE)
AND kcu.TABLE_SCHEMA = DATABASE()
AND kcu.TABLE_NAME = 'my_table'
关于php - mysql中如何判断哪些列被设置为CASCADE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12209414/