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

MySQLでテーブルが空の場合はINSERTを実行しますか?


サブクエリを使用して、テーブルが空の場合に挿入を実行できます。そのためには、サブクエリを使用して存在しない条件で作業します。

以下の構文は、テーブルが空の場合にのみ機能します。テーブルが空でない場合、レコードは挿入されません。構文は次のとおりです。

INSERT INTO yourTableName(yourColumnName)
SELECT ‘anyValue’
WHERE NOT EXISTS (SELECT *FROM yourTableName);

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。

mysql> create table ExecuteInsertDemo
   -> (
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (0.67 sec)

insertコマンドを使用してテーブルにレコードを挿入しましょう。レコードを挿入するためのクエリは次のとおりです。

mysql> insert into ExecuteInsertDemo values('John');
Query OK, 1 row affected (0.19 sec)

テーブルが空ではないとしましょう。レコードは1つだけです。挿入コマンドを実行すると、MySQLはそのレコードをテーブルに入力しません。

挿入を実行するためのクエリは次のとおりです。

mysql> insert into ExecuteInsertDemo(Name)
   -> select 'Larry'
   -> where not exists (select *from ExecuteInsertDemo);
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

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

mysql> select *from ExecuteInsertDemo;

出力は次のとおりです。

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

上記のクエリを実行するには、テーブルからレコードを削除する必要があります。 truncateコマンドを使用します。クエリは次のとおりです。

mysql> truncate table ExecuteInsertDemo;
Query OK, 0 rows affected (1.10 sec)

上記のクエリを実行して、挿入コマンドを実行します。クエリは次のとおりです。

mysql> insert into ExecuteInsertDemo(Name)
   -> select 'Larry'
   -> where not exists (select *from ExecuteInsertDemo);
Query OK, 1 row affected (0.33 sec)
Records: 1 Duplicates: 0 Warnings: 0

selectを使用してテーブルからレコードを表示します。クエリは次のとおりです。

mysql> select *from ExecuteInsertDemo;

出力は次のとおりです。

+-------+
| Name  |
+-------+
| Larry |
+-------+
1 row in set (0.00 sec)

サンプル出力を見てください。テーブルが空のときに「Larry」が正常に挿入されました。


  1. MySQLでSelectクエリを使用して挿入

    SELECTクエリを使用した挿入の場合、構文は次のとおりです- insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;を選択します。 まずテーブルを作成しましょう- mysql> create table DemoTable1603    -> (    -> StudentId int,    -> Stud

  2. 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