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

MySQLでINSERTの重複を防ぐ方法は?


このために、UNIQUEINDEXを使用できます-

alter table yourTableName ADD UNIQUE INDEX(yourColumnName1, yourColumnName2,....N);

まずテーブルを作成しましょう-

mysql> create table DemoTable
   -> (
   -> Value1 int,
   -> Value2 int
   -> );
Query OK, 0 rows affected (0.55 sec)

以下は、一意のインデックスを追加するためのクエリです-

mysql> alter table DemoTable ADD UNIQUE INDEX(Value1, Value2);
Query OK, 0 rows affected (0.54 sec)
Records: 0  Duplicates: 0  Warnings: 0

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します

−INSERTコマンドではなくINSERTIGNOREコマンドを使用してください。レコードが既存のレコードと重複しない場合、MySQLは通常どおりにそのレコードを挿入します。レコードが重複している場合、IGNOREキーワードは、エラーを生成せずにサイレントにレコードを破棄するようにMySQLに指示します。

mysql> insert ignore into DemoTable values(10,20);
Query OK, 1 row affected (0.14 sec)

mysql> insert ignore into DemoTable values(10,20);
Query OK, 0 rows affected, 1 warning (0.10 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

出力

これにより、次の出力が生成されます-

+--------+--------+
| Value1 | Value2 |
+--------+--------+
|     10 |   20   |
+--------+--------+
1 row in set (0.00 sec)

  1. JSONをMySQLテーブルに挿入しますか?

    テーブルを作成し、JSON型の列値を設定しましょう mysql> create table DemoTable1832      (      ListOfNames JSON      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1832(ListOfNames) values('["Sam", &quo

  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