为了账号安全,请及时绑定邮箱和手机立即绑定

如何查看表或列的所有外键?

如何查看表或列的所有外键?

隔江千里 2019-07-11 13:17:36
如何查看表或列的所有外键?在MySQL中,如何获得指向特定表的所有外键约束的列表?某一列?这和这个甲骨文问题,但是对于MySQL。
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

表:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEFROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>';

列:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEFROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>' AND
  REFERENCED_COLUMN_NAME = '<column>';

基本上,我们在WHERE子句中用引用_Column_name更改了引用_TABLE_NAME。


查看完整回答
反对 回复 2019-07-11
?
动漫人物

TA贡献1815条经验 获得超10个赞

正如注释中指出的,这并不是对OPS问题的正确回答,但是了解这个命令是有用的。这个问题出现在谷歌上是为了我想要的东西,我想我会把这个答案留给其他人去找。

SHOW CREATE TABLE `<yourtable>`;

我在这里找到了这个答案:MySQL:显示表命令上的约束

我需要这样做,因为我想看看FK是如何运作的,而不是仅仅看看它是否存在。


查看完整回答
反对 回复 2019-07-11
?
莫回无

TA贡献1865条经验 获得超7个赞

如果使用InnoDB并定义了FK,则可以查询Information_SCHEMA数据库,例如:

SELECT * FROM information_schema.TABLE_CONSTRAINTS 
WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY' AND information_schema.TABLE_CONSTRAINTS.
TABLE_SCHEMA = 'myschema'AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'mytable';


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 1128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信