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

MySQL条件付き挿入を形成する方法は?


このために、MySQLデュアルテーブルを使用して挿入できます。条件付き挿入の概念を理解するためのテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table ConditionalInsertDemo
   -> (
   -> UserId int,
   -> TotalUser int,
   -> NumberOfItems int
   -> );
Query OK, 0 rows affected (0.58 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into ConditionalInsertDemo values(101,560,780);
Query OK, 1 row affected (0.19 sec)

mysql> insert into ConditionalInsertDemo values(102,660,890);
Query OK, 1 row affected (0.20 sec)

mysql> insert into ConditionalInsertDemo values(103,450,50);
Query OK, 1 row affected (0.15 sec)

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

mysql> select *from ConditionalInsertDemo;

出力

+--------+-----------+---------------+
| UserId | TotalUser | NumberOfItems |
+--------+-----------+---------------+
|    101 | 560       |           780 |
|    102 | 660       |           890 |
|    103 | 450       |            50 |
+--------+-----------+---------------+
3 rows in set (0.00 sec)

これで、テーブルに3つのレコードがあります。デュアルテーブルを使用して、条件付き挿入を使用して次のレコードを挿入できます。 UserId=104およびNumberOfItems=3500がテーブルにまだ存在していてはならない場合は常に、クエリはテーブルにレコードを挿入します。条件付き挿入クエリは次のとおりです-

mysql> insert into ConditionalInsertDemo(UserId,TotalUser,NumberOfItems)
   -> select 104,900,3500 from dual
   -> WHERE NOT EXISTS (SELECT * FROM ConditionalInsertDemo
   -> where UserId=104 and NumberOfItems=3500);
Query OK, 1 row affected (0.18 sec)
Records: 1 Duplicates: 0 Warnings: 0

これで、テーブルを確認でき、レコードが挿入されているかどうかを確認できます。すべてのレコードを表示するためのクエリは次のとおりです-

mysql> select *from ConditionalInsertDemo;

出力

+--------+-----------+---------------+
| UserId | TotalUser | NumberOfItems |
+--------+-----------+---------------+
|    101 |       560 |           780 |
|    102 |       660 |           890 |
|    103 |       450 |            50 |
|    104 |       900 |          3500 |
+--------+-----------+---------------+
4 rows in set (0.00 sec)

  1. MySQLで自動インクリメント列をリセットするにはどうすればよいですか?

    自動インクリメント列をリセットするには、TRUNCATETABLEコマンドを使用します。その後、挿入時に列をリセットします。 まずテーブルを作成しましょう- mysql> create table DemoTable1888    (    Id int NOT NULL AUTO_INCREMENT,    PRIMARY KEY(Id)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql&

  2. 挿入する前にMySQLトリガーを停止するにはどうすればよいですか?

    このための構文は次のとおりです- delimiter // create trigger yourTriggerName before insert on yourTableName    FOR EACH ROW    BEGIN    yourStatement1    .    .    N END // delimiter ; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable1919 &nbs