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

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(yourColumnName);

列「name」にUNIQUEを追加するために、上記の構文を適用します。

mysql> alter table AddingUnique add UNIQUE(name);
Query OK, 0 rows affected (0.60 sec)
Records: 0  Duplicates: 0  Warnings: 0

フィールドを一意に設定したため、重複するレコードをテーブルに挿入できなくなりました。重複するレコードを追加しようとすると、エラーが発生します。

mysql> alter table AddingUnique add UNIQUE(name);
Query OK, 0 rows affected (0.60 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> insert into AddingUnique values(1,'John');
Query OK, 1 row affected (0.15 sec)

mysql> insert into AddingUnique values(1,'John');
ERROR 1062 (23000): Duplicate entry 'John' for key 'name'

mysql> insert into AddingUnique values(2,'Carol');
Query OK, 1 row affected (0.18 sec)

mysql> insert into AddingUnique values(3,'John');
ERROR 1062 (23000): Duplicate entry 'John' for key 'name'

mysql> insert into AddingUnique values(4,'Smith');
Query OK, 1 row affected (0.18 sec)

すべてのレコードを表示します。

mysql> select *from AddingUnique;

以下は出力です。

+------+-------+
| Id   | name  |
+------+-------+
|    1 | John  |
|    2 | Carol |
|    4 | Smith |
+------+-------+
3 rows in set (0.00 sec)

  1. MySQLで特定のフィールド値を交換する方法は?

    まずテーブルを作成しましょう- mysql> create table DemoTable (    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Number1 int,    Number2 int ); Query OK, 0 rows affected (0.68 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable(Number1,Number2) values(10,30); Qu

  2. MySQLでcharフィールドをdatetimeフィールドに変換する方法は?

    まず、テーブルを作成しましょう。ここでは、char型で日付を宣言しています- mysql> create table DemoTable1472    -> (    -> ShippingDate char(35)    -> ); Query OK, 0 rows affected (0.46 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1472 values('12/31/2017 10:50'