4D v16

INSERT

ホーム

 
4D v16
INSERT

INSERT  


 

 

INSERT INTO {sql_name | sql_string}
[(column_reference, ..., column_reference)]
[VALUES({[INFILE]arithmetic_expression |NULL}, ..., {[INFILE]arithmetic_expression |NULL};) |subquery]

説明  

INSERTコマンドは既存のテーブルにデータを追加するために使用します。データを追加するテーブルはsql_nameまたはsql_stringを使用して渡されます。オプションのcolumn_reference型の引数が渡されると、値が挿入されるカラム名を指定します。column_referenceが渡されない場合、値はデータベース中の順番通りに格納されます (最初の値は一番目のカラムに、二番目の値は二番目のカラムに)。

注: このコマンドはオブジェクト型の4Dフィールドをサポートしていません。

VALUESキーワードは、指定したカラムに格納する値を渡すために使用します。arithmetic_expressionまたはNULLを渡すことができます。さらに値として渡す一連のデータを挿入するために、subqueryVALUESキーワード中に渡すこともできます。
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);

このシンタックスは例題3と4で説明しています。

これは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);



参照 

arithmetic_expression
column_reference
DELETE
subquery

 
プロパティ 

プロダクト: 4D
テーマ: SQLコマンド

 
履歴 

 
ARTICLE USAGE

SQLリファレンス ( 4D v16)