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

MySQLでINSERT…ONDUPLICATEKEYUPDATEを実装します


INSERT ... ON DUPLICATE KEY UPDATEは、重複する一意のキーまたは主キーが見つかった場合にUPDATEを実行するように機能します。 UPDATEは、重複する値が発生した場合にのみ実行されます。

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

mysql> create table DemoTable733 (
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   StudentName varchar(100),
   StudentMarks int,
   UNIQUE KEY Un_Name (StudentName)
);
Query OK, 0 rows affected (0.60 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable733(StudentName,StudentMarks) values('John',45) 
ON DUPLICATE KEY UPDATE StudentMarks=86;
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable733(StudentName,StudentMarks) values('Adam',65) 
ON DUPLICATE KEY UPDATE StudentMarks=86;
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable733(StudentName,StudentMarks) values('Carol',75) 
ON DUPLICATE KEY UPDATE StudentMarks=86;
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable733(StudentName,StudentMarks) values('John',45) 
ON DUPLICATE KEY UPDATE StudentMarks=86;
Query OK, 2 rows affected (0.12 sec)
>

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

mysql> select *from DemoTable733;

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

+-----------+-------------+--------------+
| StudentId | StudentName | StudentMarks |
+-----------+-------------+--------------+
| 1         | John        | 86           |
| 2         | Adam        | 65           |
| 3         | Carol       | 75           |
+-----------+-------------+--------------+
3 rows in set (0.00 sec)

  1. MySQLでの重複キー更新でのINSERT…の実装

    新しい行をテーブルに挿入するときに、その行によってUNIQUEインデックスまたはPRIMARY KEYが重複する場合は、エラーが発生する可能性があります。これを修正するには、ON DUPLICATEKEYUPDATEを使用します。これをINSERTステートメントで使用すると、既存の行が新しい値で更新されます。 まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Value int    -> ); Query OK, 0 rows affec

  2. INSERTコマンドのMySQLテーブルをトリガーで更新しますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable1    -> (    -> Id int,    -> FirstName varchar(20)    -> ); Query OK, 0 rows affected (0.52 sec) これが2番目のテーブルを作成するためのクエリです- mysql> create table DemoTable2    -> (    -> E