具有混合值的SQLite INSERT语句

时间:2014-06-28 15:25:53

标签: sql sqlite

我想在表“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");

1 个答案:

答案 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;
相关问题