代码之家  ›  专栏  ›  技术社区  ›  pvgoddijn

mysql是否显示create约束?

  •  7
  • pvgoddijn  · 技术社区  · 14 年前

    有没有一种简单的方法来查询表的约束(foreignkeys specificaly) 像show create table,但是只针对约束?

    谢谢,

    PVGordijn

    4 回复  |  直到 14 年前
        1
  •  12
  •   Alex Jasmin    14 年前

    要仅显示外键约束,可以检查information\u schema.table\u约束中的约束类型,并通过join获取information\u schema.key\u column\u用法中受影响的列。

    SELECT b.table_name, b.column_name, b.constraint_name,
           b.referenced_table_name, b.referenced_column_name
    FROM information_schema.table_constraints a
    JOIN information_schema.key_column_usage b
    ON a.table_schema = b.table_schema AND a.constraint_name = b.constraint_name
    WHERE a.table_schema=database() AND a.constraint_type='FOREIGN KEY'
    ORDER BY b.table_name, b.constraint_name;
    
        2
  •  1
  •   Ike Walker    14 年前
    select * from 
    information_schema.KEY_COLUMN_USAGE 
    where table_schema = <db_name> 
    and table_name = <table_name>;
    
        3
  •  -2
  •   northpole    14 年前
    SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';
    

    外键约束列在输出的注释列中。

        4
  •  -2
  •   Jonathan Czitkovics    14 年前

    MySQL 5.1 Manual

    SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';