【发布时间】:2012-09-25 21:44:56
【问题描述】:
我需要的关于数据库的几乎所有信息,都可以在 information_schema 中找到
这一次我需要通过单个查询读取数据库中所有外键的详细信息我在 information_schema.key_Column_usage 中找到了所有内容但找不到constraints like on delete, on update
我可以为所有单独的表执行show create table。但是有没有办法通过这样的选择查询来获取这些详细信息?
SELECT CONSTRAINT_NAME, TABLE_NAME,COLUMN_NAME, REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME FROM information_schema.`KEY_COLUMN_USAGE` WHERE
table_schema = 'mydbname' AND referenced_column_name IS NOT NULL
它做得很好,但只是缺少像on delete, on update 这样的约束我怎样才能获得这些值,以便我可以在单个查询中获取有关外键的所有信息?
【问题讨论】:
-
你试过
extra栏目了吗? -
@njk 在
KEY_COLUMN_USAGE中不存在。 -
存在于columns表中。我曾尝试过,但现在再次查看这些详细信息,但它只包含有关 auto_increment 的信息,而不包含这些约束的任何信息
-
文档说应该有一个表
information_schema.referential_constraints。但我没看到。 -
@Barmar 我意识到我迟到了,但我刚刚检查了一下,
referential_constraints出现在我的 5.6.17 版本上。文档说它是在 5.1.10 中添加的,也许您正在/正在使用旧版本?
标签: mysql foreign-keys constraints information-schema