如何在 MySQL 中显示表上的所有约束?

mysqlmysqli database

要显示表上的所有约束,您可以尝试以下任何一种方法 −

方法 1 − 使用 SHOW 命令

您可以借助 show 命令进行检查。语法如下 −

SHOW CREATE TABLE yourTableName;

方法 2 − 使用 information.schema

您可以使用 information.schema。语法如下 −

select COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_COLUMN_NAME, REFERENCED_TABLE_NAME
from information_schema.KEY_COLUMN_USAGE
where TABLE_NAME = 'yourTableName';

要显示表上的所有约束,请实现上述语法。假设我们已经有一个表"ConstraintDemo"。

查询如下 −

mysql> select COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_COLUMN_NAME, REFERENCED_TABLE_NAME
   −> from information_schema.KEY_COLUMN_USAGE
   −> where TABLE_NAME = 'ConstraintDemo';

以下是显示约束的输出 −

+-------------+-----------------+------------------------+-----------------------+
| COLUMN_NAME | CONSTRAINT_NAME | REFERENCED_COLUMN_NAME | REFERENCED_TABLE_NAME |
+-------------+-----------------+------------------------+-----------------------+
| Id          | PRIMARY         | NULL                   |                  NULL |
| Id          | Id              | NULL                   |                  NULL |
+-------------+-----------------+------------------------+-----------------------+
2 rows in set, 2 warnings (0.04 sec)

现在让我们使用 show 命令进行检查。查询如下 −

mysql> show create table ConstraintDemo;

以下是输出 −

+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table          |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ConstraintDemo | CREATE TABLE `constraintdemo` (`Id` int(11) NOT NULL,`Name` varchar(100) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Id` (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

相关文章