Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 테이블의 모든 제약 조건을 표시하는 방법은 무엇입니까?


테이블의 모든 제약 조건을 표시하려면 다음 방법 중 하나를 시도할 수 있습니다. -

방법 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)