MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでテーブルの制約を表示する方法(SHOW CREATE TABLE活用ガイド)

MySQLでテーブルの制約を確認するには?

MySQLでは、SHOWコマンドを使うことで、テーブルに設定されている制約(CONSTRAINT)を簡単に確認できます。使用する構文は以下の通りです。

show create table テーブル名;

このコマンドを実行すると、テーブルのストレージエンジン(ENGINE)とともに、設定されているすべての制約が表示されます。さらに、カラム名やそれぞれのデータ型も同時に確認できるため、テーブル構造の把握に非常に便利です。

サンプルテーブルの作成

実際の動作を理解するために、まずはサンプルとなるテーブルを作成してみましょう。

mysql> create table ShowConstraintsDemo
    -> (
    -> BookId int not null,
    -> BookName varchar(200) not null,
    -> BookAuthor varchar(200) Unique not null,
    -> Primary key(BookId,BookName)
    -> );
Query OK, 0 rows affected (1.04 sec)

このテーブルには以下の制約が含まれています。

  • NOT NULL制約:BookId・BookName・BookAuthorの各カラムにNULL値を許可しない
  • UNIQUE制約:BookAuthorカラムの値の重複を禁止
  • PRIMARY KEY制約:BookIdとBookNameの複合主キーを設定

SHOW CREATE TABLEで制約を表示する

それでは、先ほどの構文を使って、テーブルの制約を表示してみましょう。実行するクエリは次の通りです。

mysql> show create table ShowConstraintsDemo;

実行結果として、すべての制約情報が出力されます。

+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table               | Create Table                                                                                                                                                                                                                                                                                                                                       |
+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ShowConstraintsDemo | CREATE TABLE `showconstraintsdemo` ( `BookId` int(11) NOT NULL, `BookName` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL, `BookAuthor` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`BookId`,`BookName`), UNIQUE KEY `BookAuthor` (`BookAuthor`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci           |
+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.05 sec)

出力結果の見方

出力されたCREATE TABLE文から、以下の情報を読み取ることができます。

  • NOT NULL:各カラムにNULLが許可されていないことがわかります
  • PRIMARY KEY (`BookId`,`BookName`):複合主キーが正しく設定されています
  • UNIQUE KEY `BookAuthor`:著者名の一意性が保証されています
  • ENGINE=InnoDB:ストレージエンジンがInnoDBであることも確認できます

このように、SHOW CREATE TABLEコマンドを使えば、テーブルの制約だけでなく、文字コードや照合順序、ストレージエンジンなどの詳細な定義情報も一度に確認できます。テーブル設計のレビューやトラブルシューティングの際にぜひ活用してください。

  1. MySQLストアドプロシージャでSHOW CREATE TABLEを実行する方法

    MySQLストアドプロシージャでSHOW CREATE TABLEを実行する方法 ストアドプロシージャの中でSHOW CREATE TABLEを実行したい場合は、動的SQL(プリペアドステートメント)を利用します。SHOW系のコマンドはプロシージャ内に直接記述できないため、SQL文を文字列として組み立てて実行するのがポイントです。 まずはサンプル用のテーブルを作成しましょう。 mysql> create table DemoTable2011 -> ( -> StudentId int NOT NULL AUTO_INCREMENT, -> St

  2. MySQLでSELECTとSHOWコマンドの結果を1つに結合する方法

    はじめにMySQLでは、SELECT文やSHOWコマンドの実行結果を、ユーザー定義変数(セッション変数)を活用することで1つの結果セットにまとめることができます。この記事では、その具体的な方法をサンプルコード付きで解説します。基本的な構文複数のコマンド結果を1つに結合するには、以下のようなクエリを使用します。各変数に別名(エイリアス)を付けて出力するのがポイントです。select @任意の変数名1 as 別名1, @任意の変数名2 as 別名2, ......N;手順1:最初の変数を作成・初期化するまず、結合したい値を格納するための最初の変数を作成し、初期化します。mysql> set