我很想知道是否有办法知道哪些列已使用 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/

10-09 00:55