我想在表“SampleTable”中插入一条记录,INSERT语句有2个实际值和一个SELECT语句。我知道我可以使用Trigger来解决问题,但是我需要一个允许类似下面的INSERT语句的解决方案(这不起作用。它会产生“语法错误”。感谢您对此事的帮助。
CREATE TABLE "SampleTable" (
"SampleTableID" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
"UniqueIdentifier" nvarchar,
"Name" nvarchar(50),
"City" nvarchar(50)
)
INSERT INTO "SampleTable" (
"UniqueIdentifier",
"Name",
"City"
)
VALUES ((SELECT substr(u,1,8)||'-'||substr(u,9,4)||'-4'||substr(u,13,3)||
'-'||v||substr(u,17,3)||'-'||substr(u,21,12) from (
select lower(hex(randomblob(16))) as u, substr('89ab',random() % 4 + 1, 1) as v),"Russel","Dallas");
答案 0 :(得分:1)
使用insert . . . select
代替insert . . . values
。我认为这是您正在寻找的语法:
INSERT INTO "SampleTable" (UniqueIdentifier, Name, City)
SELECT substr(u, 1, 8)||'-'||substr(u, 9, 4)||'-4'||substr(u, 13, 3)||'-'||v||substr(u, 17, 3)||''||substr(u, 21, 12), 'Russel', 'Dallas'
from (select lower(hex(randomblob(16))) as u, substr('89ab',random() % 4 + 1, 1) as v
) toinsert;