📅  最后修改于: 2023-12-03 14:56:21.097000             🧑  作者: Mango
在数据库中,约束是用于限制表中数据的规则。当我们需要了解一个表的约束时,可以使用 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 查询语句,可以方便地获取表上所有现有约束信息。