📜  用于显示表上所有现有约束的 SQL 查询(1)

📅  最后修改于: 2023-12-03 14:56:21.097000             🧑  作者: Mango

用于显示表上所有现有约束的 SQL 查询

在数据库中,约束是用于限制表中数据的规则。当我们需要了解一个表的约束时,可以使用 SQL 查询来获取这些信息。下面介绍几种常用的 SQL 查询语句来获取表上所有现有约束。

查询所有的约束

以下 SQL 查询语句可以用于返回指定表上所有的约束信息。

SELECT
    *
FROM
    information_schema.table_constraints
WHERE
    table_name = 'table_name';

其中,table_name指定要查询的表名。执行此查询后,将返回表上所有的约束信息,包括约束类型、约束名称和约束定义等。

查询主键约束

主键约束是用于保证表中每一行数据唯一性的约束,一个表只能有一个主键。以下 SQL 查询可用于查找指定表上的主键约束。

SELECT
    column_name
FROM
    information_schema.key_column_usage
WHERE
    constraint_name = 'PRIMARY'
    AND table_name = 'table_name';

其中,table_name指定要查询的表名,constraint_name为'PRIMARY'表示要查询主键约束。执行此查询后,将返回包含主键列名的结果集。

查询唯一性约束

唯一性约束是用于保证表中每一行数据在指定列上唯一性的约束。以下 SQL 查询可用于查找指定表上的唯一性约束。

SELECT
    constraint_name,
    column_name
FROM
    information_schema.constraint_column_usage
WHERE
    constraint_name IN (
        SELECT
            constraint_name
        FROM
            information_schema.table_constraints
        WHERE
            constraint_type = 'UNIQUE'
            AND table_name = 'table_name'
    );

其中,table_name指定要查询的表名,constraint_type为'UNIQUE'表示要查询唯一性约束。执行此查询后,将返回包含约束名称和列名的结果集。

查询外键约束

外键约束是用于保证表与表之间关联关系的约束。以下 SQL 查询可用于查找指定表上的外键约束。

SELECT
    constraint_name,
    column_name,
    referenced_table_name,
    referenced_column_name
FROM
    information_schema.key_column_usage
WHERE
    referenced_column_name IS NOT NULL
    AND table_name = 'table_name';

其中,table_name指定要查询的表名。执行此查询后,将返回包含约束名称、列名、参照表名和参照列名的结果集。

使用以上 SQL 查询语句,可以方便地获取表上所有现有约束信息。