将新行添加到数据库表或者内存表/矩阵中。
语法
INSERT [INTO]
<Expression | {<SQLTABLE | HUGESQLTABLE><SQL_Str><OF SQL_Alias>}>
[InsertFields(<FieldExp1>[,…,FieldExpN])]
{valueExpression | {Values(<ValueExp1>[,..,ValueExpN])}}
参数
[INTO]
一个可选的关键字,可以将它用在 INSERT 和目标表之间。
Expression
二维数组或者矩阵表达式,要插入的内存表。
<sqltable|hugesqltable><sql_str> of <Sql_Alias>
往SQL数据源里插入数据的时候,sql_str是SQL的字符串,sql_alias是SQL执行依赖的别名。
当数据集合特别庞大的时候,采用hugesqltable可以节省内存,但是速度可能会比sqltable慢很多。
有关数据库别名请参考:ExecSQL
InsertFields
可选关键字,如果要指定Values关键字里的内容相应的字段,则采用InsertFields(<FieldExp1>[,…,FieldExpN])的模式。
FieldExp
在InsertFields关键字里的字段表达式,采用【字段名表达式】的模式,例如字段ABCD用["ABCD"]来表达。
ValueExpression
如果要批量插入数据,例如将一个Select的结果集插入一个表,或者直接将一个内存表的数据插入数据表,使用一个结果为数组的表达式。
也就是说既然可以使用类似于SQL语法的Insert into AAA select * from BBB end的模式插入,也可以采用Insert into AAA BBB的模式。注意在这里select * from BBB end返回的结果就是一个数组结果(通常是二维表结构)。
VALUES
引入要插入的数据值的列表。值的序列对应于InsertFields(如果已指定)中或者表中的相应列位置。必须用圆括号将值列表括起来。
如果 VALUES 列表中的值与表中列的顺序不相同,那么必须使用InsertFields关键字明确地指定存储每个传入值的列。