ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
||||||||||||||
|
4D v20
INSERT
|
INSERT INTO {sql_name | sql_string} |
||
INSERTコマンドは既存のテーブルにデータを追加するために使用します。データを追加するテーブルはsql_nameまたはsql_stringを使用して渡されます。オプションのcolumn_reference型の引数が渡されると、値が挿入されるカラム名を指定します。column_referenceが渡されない場合、値はデータベース中の順番通りに格納されます (最初の値は一番目のカラムに、二番目の値は二番目のカラムに)。
注: このコマンドはオブジェクト型の4Dフィールドをサポートしていません。
VALUESキーワードは、指定したカラムに格納する値を渡すために使用します。arithmetic_expressionまたはNULLを渡すことができます。さらに値として渡す一連のデータを挿入するために、subqueryをVALUESキーワード中に渡すこともできます。
VALUESキーワード中に渡す値の数はcolumn_reference型の引数で渡した数と一致しなければならず、それぞれの値とカラムのデータ型は一致しているか、少なくとも変換可能でなければなりません。
INFILEキーワードは、外部ファイルの内容を使用して新しいレコードの値を指定することを可能にします。このキーワードはVARCHAR型の式とともに使用されなければなりません。INFILEキーワードが渡される場合、arithmetic_expression値はファイルパス名として評価されます。ファイルが見つかると、ファイルの内容が対応するカラムに挿入されます。テキストまたはBLOB型のフィールドだけがINFILEから値を受け取ることができます。ファイルの内容は変換されず、ローデータとして転送されます。
クエリがリモートから行われる場合でも、検索するファイルはSQLエンジンをホストするマシン上に存在しなければなりません。同様に、パス名もSQLエンジンが動作するOSのシンタックスで表現されなければなりません。パスは絶対または相対パスが使用できます。
INSERTコマンドはシングルおよびマルチロークエリでサポートされています。しかしマルチローのINSERT文はUNIONおよびJOIN操作を許可しません。
4Dエンジンはマルチローの値挿入が可能で、特に大量のデータを挿入するような際にコードを簡略および最適化することができます。マルチローの挿入のシンタックスは以下の通りです:
INSERT INTO {sql_name | sql_string}
[(column_ref, ..., column_ref)]
VALUES(arithmetic_expression, ..., arithmetic_expression), ..., (arithmetic_expression, ..., arithmetic_expression);
これはtable2のセレクションをtable1に挿入する例題です:
INSERT INTO table1 (SELECT * FROM table2)
この例題はテーブルを作成し、値を挿入します:
CREATE TABLE ACTOR_FANS
(ID INT32, Name VARCHAR);
INSERT INTO ACTOR_FANS
(ID, Name)
VALUES (1, 'Francis’);
複数行のシンタックスにより、うんざりするような行の繰り返しを避けることができます。
INSERT INTO MyTable
(Fld1,Fld2,BoolFld,DateFld,TimeFld, InfoFld)
VALUES
(1,1,1,'11/01/01','11:01:01',’First row’),
(2,2,0,'12/01/02','12:02:02',’Second row’),
(3,3,1,'13/01/03','13:03:03',’Third row’),
………
(7,7,1,'17/01/07','17:07:07',’Seventh row’);
複数行のシンタックスの他、4Dの変数、または配列を使用することもできます。 ただし複数行シンタックスと変数、配列シンタックスを混ぜて使用することはできません。
INSERT INTO MyTable
(Fld1,Fld2,BoolFld,DateFld,TimeFld, InfoFld)
VALUES
(:vArrId, :vArrIdx, :vArrbool, :vArrdate, :vArrL, :vArrText);
プロダクト: 4D
テーマ: SQLコマンド
SQLリファレンス ( 4D v20)