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」が正常に挿入されました。
-
MySQLでSelectクエリを使用して挿入
SELECTクエリを使用した挿入の場合、構文は次のとおりです- insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;を選択します。 まずテーブルを作成しましょう- mysql> create table DemoTable1603 -> ( -> StudentId int, -> Stud
-
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