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