MySQL
 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)

  1. MySQLでテーブルのすべてのフィールドを表示しますか?

    すべてのフィールドを表示するには、以下の構文のように、データベースをtable_schemaで設定し、特定のテーブルをtable_nameで設定します- select column_name as anyAliasName from information_schema.columns    where table_schema=database()    and table_name=’yourTableName’\G まずテーブルを作成しましょう- mysql> create table DemoTable1938 &

  2. MySQLにテーブルが存在するかどうかを検出するにはどうすればよいですか?

    テーブルの存在を検出するには、INFORMATION_SCHEMA.TABLESの概念を使用します。構文は次のとおりです- select table_name from information_schema.tables where table_schema=database() and table_name=yourTableName; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2032    -> (    -> ClientId int,   &n