もう迷わない!MySQLテーブルの一意制約のすべて。確認方法、追加方法、サンプルコード付き
MySQLでテーブルの一意制約を表示する方法
このチュートリアルでは、MySQLでテーブルの一意制約を表示する方法を2つの方法で説明します。
方法1:DESCコマンドを使用する
- MySQLに接続します。
- 次のコマンドを実行して、テーブル構造を表示します。
DESC table_name;
このコマンドは、テーブル名に置き換えてください。
出力結果のKey列に、UNIと表示されている列があれば、それは一意制約を持つ列です。
方法2:INFORMATION_SCHEMAデータベースを使用する
USE INFORMATION_SCHEMA;
SELECT *
FROM TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
AND TABLE_NAME = 'table_name';
出力結果には、一意制約の名前、制約が適用される列、および制約に関するその他の情報が表示されます。
例
次の例は、customers
テーブルにemail
列に一意制約を設定する方法を示しています。
CREATE TABLE customers (
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(255) UNIQUE NOT NULL,
name VARCHAR(255) NOT NULL
);
このテーブルの場合、DESC customers;
コマンドを実行すると次の出力が表示されます。
| Field | Type | Key | Default | Extra |
|---|---|---|---|---|
| id | int(11) | PRI | NULL | auto_increment |
| email | varchar(255) | UNI | NULL | |
| name | varchar(255) | | NULL | |
email
列のKey列にUNIと表示されているため、この列には一意制約が設定されていることがわかります。
補足
- 一意制約は、列にNULL値を含めることは許可しません。
- 一意制約は、複数の列に適用することができます。
以上、MySQLでテーブルの一意制約を表示する方法でした。
方法1:DESCコマンドを使用する
-- customersテーブルを作成する
CREATE TABLE customers (
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(255) UNIQUE NOT NULL,
name VARCHAR(255) NOT NULL
);
-- customersテーブルの構造を表示する
DESC customers;
| Field | Type | Key | Default | Extra |
|---|---|---|---|---|
| id | int(11) | PRI | NULL | auto_increment |
| email | varchar(255) | UNI | NULL | |
| name | varchar(255) | | NULL | |
方法2:INFORMATION_SCHEMAデータベースを使用する
-- INFORMATION_SCHEMAデータベースを選択する
USE INFORMATION_SCHEMA;
-- customersテーブルの一意制約に関する情報を表示する
SELECT *
FROM TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
AND TABLE_NAME = 'customers';
このコードを実行すると、次の出力が表示されます。
| CONSTRAINT_NAME | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME |
|---|---|---|---|---|
| email_UNIQUE | def | customers | customers | email |
出力結果には、一意制約の名前(email_UNIQUE
)、制約が適用されるテーブル(customers
)、制約が適用される列(email
)が表示されます。
このサンプルコードは、一意制約を表示する方法を2通り示しています。自分の好みに合わせて、いずれかの方法を使用してください。
方法3:SHOW CREATE TABLEコマンドを使用する
SHOW CREATE TABLE table_name;
このコマンドを実行すると、テーブルの作成に使用されたSQLステートメントが表示されます。このステートメントには、テーブルの一意制約に関する情報が含まれています。
MySQL WorkbenchなどのGUIツールを使用すると、テーブルの一意制約を視覚的に表示することができます。
MySQL Workbenchを使用して、customers
テーブルの一意制約を表示する方法を次に示します。
- MySQL Workbenchを起動し、データベースに接続します。
- ナビゲーターペインで、テーブルを展開します。
customers
テーブルを右クリックし、コンテキストメニューから構造の編集を選択します。- 構造タブで、制約セクションを確認します。
email
列にはUNIQUE制約が設定されていることがわかります。
これらの方法は、上記で説明した方法よりも詳細な情報を提供する場合があります。状況に応じて適切な方法を選択してください。
MySQLでテーブルの一意制約を表示するには、さまざまな方法があります。自分に合った方法を選択して、テーブルのデータ整合性を保ってください。
mysql database