【问题标题】:how to get fields foreign key(table and field) php mysqli [closed]如何获取字段外键(表和字段)php mysqli [关闭]
【发布时间】:2013-02-24 17:39:30
【问题描述】:

如何使用 php 和 mysqli 在 phpMyAdmin 中获取外键字段?
见照片:

【问题讨论】:

  • “获取外键字段”是什么意思?
  • @Explosion Pills like on picture 我想获取 device.devicetype.id

标签: mysql foreign-keys


【解决方案1】:

所有约束都列在 INFORMATION_SCHEMA.TABLE_CONSTRAINTS 中:

mysql> create table test.foo (id int primary key);
mysql> create table test.bar (fooid int, foreign key (fooid) references foo(id));

mysql> select * from information_schema.table_constraints 
    where constraint_schema = 'test'\G
*************************** 1. row ***************************
CONSTRAINT_CATALOG: def
 CONSTRAINT_SCHEMA: test
   CONSTRAINT_NAME: bar_ibfk_1
      TABLE_SCHEMA: test
        TABLE_NAME: bar
   CONSTRAINT_TYPE: FOREIGN KEY
*************************** 2. row ***************************
CONSTRAINT_CATALOG: def
 CONSTRAINT_SCHEMA: test
   CONSTRAINT_NAME: PRIMARY
      TABLE_SCHEMA: test
        TABLE_NAME: foo
   CONSTRAINT_TYPE: PRIMARY KEY

这些约束中的所有列都在 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 中:

mysql> select * from information_schema.key_column_usage 
    where constraint_schema = 'test'\G
*************************** 1. row ***************************
           CONSTRAINT_CATALOG: def
            CONSTRAINT_SCHEMA: test
              CONSTRAINT_NAME: bar_ibfk_1
                TABLE_CATALOG: def
                 TABLE_SCHEMA: test
                   TABLE_NAME: bar
                  COLUMN_NAME: fooid
             ORDINAL_POSITION: 1
POSITION_IN_UNIQUE_CONSTRAINT: 1
      REFERENCED_TABLE_SCHEMA: test
        REFERENCED_TABLE_NAME: foo
       REFERENCED_COLUMN_NAME: id
*************************** 2. row ***************************
           CONSTRAINT_CATALOG: def
            CONSTRAINT_SCHEMA: test
              CONSTRAINT_NAME: PRIMARY
                TABLE_CATALOG: def
                 TABLE_SCHEMA: test
                   TABLE_NAME: foo
                  COLUMN_NAME: id
             ORDINAL_POSITION: 1
POSITION_IN_UNIQUE_CONSTRAINT: NULL
      REFERENCED_TABLE_SCHEMA: NULL
        REFERENCED_TABLE_NAME: NULL
       REFERENCED_COLUMN_NAME: NULL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-13
    • 2017-08-28
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多