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

既存のMySQLテーブルのフィールドにUNIQUE制約を適用するにはどうすればよいですか?


ALTER TABLEステートメントを使用して、既存のMySQLテーブルの列にUNIQUE制約を適用できます。

構文
ALTER TABLE table_name MODIFY colum_name datatype UNIQUE;
                    OR
ALTER TABLE table_name ADD UNIQUE (colum_name);

「Test4」という名前の次のテーブルがあり、「Name」列にUNIQUE制約を追加したい場合は、ALTERTABLEコマンドを使用して次のように実行できます-

mysql> DESCRIBE test4;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID    | int(11)     | YES  | UNI | NULL    |       |
| Name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)

mysql> ALTER TABLE test4 MODIFY Name Varchar(20) UNIQUE;
Query OK, 0 rows affected (0.22 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> DESCRIBE test4;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID    | int(11)     | YES  | UNI | NULL    |       |
| Name  | varchar(20) | YES  | UNI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)

上記の結果セットから、MySQLがファイルされた「名前」にUNIQUE制約を追加したことがわかります。次のクエリでもUNIQUE制約を追加できます-

mysql> Alter table test4 add UNIQUE(name);
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0

  1. MySQLで既存のフィールドを一意にする方法は?

    MySQLで既存のフィールドを一意にするために、ALTERコマンドを使用して、フィールドにUNIQUE制約を設定できます。例を見てみましょう。まず、テーブルを作成します。 mysql> create table AddingUnique -> ( -> Id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.44 sec) UNIQUEを既存のフィールドに追加するための構文。 alter table yourTableName add UNIQUE(yourCo

  2. MySQLにブールフィールドを追加するにはどうすればよいですか?

    tinyint(1)またはboolまたはbooleanを使用できます。すべて同義語です。 boolまたはbooleanデータ型を使用する場合、それは内部的にtinyint(1)に変更されます。 PHPでは、値0はfalseを表し、1はtrueを表します。 0以外の数値も当てはまります。 テーブルを使用して、boolまたはbooleanの内部表現を確認してみましょう。テーブルを作成するためのクエリは次のとおりです。 mysql> create table AddBoolDemo -> ( -> isToggle bool -> ); Query OK, 0 rows