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

重複するエントリをMySQLテーブルに入力できないようにするにはどうすればよいですか?


MySQLテーブルに重複するエントリを入力できないようにするには、一意のキーを追加する必要があります。構文は次のとおりです-

alter ignore table yourTableName add constraint unique key(yourColumName);

上記の構文は、一意のキーを設定します。上記の構文を理解するために、テーブルを作成しましょう。

以下は、テーブルを作成するためのクエリです-

mysql> create table RemoveDuplicateEntry
   −> (
   −> Id int,
   −> Name varchar(100)
   −> )ENGINE = MyISAM;
Query OK, 0 rows affected (0.15 sec)

これで、最初に説明した構文を実装できます。クエリは次のとおりです-

mysql> alter table RemoveDuplicateEntry add constraint unique key(Id);
Query OK, 0 rows affected (0.56 sec)
Records: 0 Duplicates: 0 Warnings: 0

ここで、テーブルの構造を確認しましょう。クエリは次のとおりです-

mysql> desc RemoveDuplicateEntry;

以下は出力です-

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Id    | int(11)      | YES  | UNI | NULL    |       |
| Name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

次に、エントリが重複しているレコードをいくつか挿入します。上記のUNIQUEを使用したため、これは挿入されません-

レコードを挿入するためのクエリは次のとおりです-

mysql> insert into RemoveDuplicateEntry values(101,'John');
Query OK, 1 row affected (0.06 sec)

ここで、同じレコードを再度挿入すると、次のエラーが表示されます-

mysql> insert into RemoveDuplicateEntry values(101,'John');
ERROR 1062 (23000): Duplicate entry '101' for key 'Id'

selectステートメントを使用してテーブルのすべてのレコードを確認します。クエリは次のとおりです-

mysql> select *from RemoveDuplicateEntry;

以下は、重複エントリのないレコードを表示する出力です-

+------+------+
| Id   | Name |
+------+------+
| 101  | John |
+------+------+
1 row in set (0.00 sec)

  1. MySQLテーブルをバッチ更新する方法は?

    最初にテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> BreakfastTime time    -> ); Query OK, 0 rows affected (0.59 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('7:30:45'); Query OK, 1 row affected (0.19 sec) my

  2. MySQLにテーブルが存在するかどうかを検出するにはどうすればよいですか?

    テーブルの存在を検出するには、INFORMATION_SCHEMA.TABLESの概念を使用します。構文は次のとおりです- select table_name from information_schema.tables where table_schema=database() and table_name=yourTableName; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2032    -> (    -> ClientId int,   &n