【发布时间】:2014-10-22 14:17:08
【问题描述】:
这很好用:
insert into Genres (ID, Genre)
select 1 AS ID, 'Action' AS Genre
union select 2, 'Adventure'
...这很好用:
insert into Movies_Genres (ID, MovieID, GenreID)
select 1 AS ID, 2 AS MovieID, 1 AS GenreID
union select 2, 3, 1
...但是当我尝试结合这两个语句时:
insert into Genres (ID, Genre)
select 1 AS ID, 'Action' AS Genre
union select 2, 'Adventure'
insert into Movies_Genres (ID, MovieID, GenreID)
select 1 AS ID, 2 AS MovieID, 1 AS GenreID
union select 2, 3, 1
...它会引发错误。我还尝试用分号分隔 2 个表批次,但也出现错误。 “解析提供的 SQL 语句时发生错误。”和“语法错误”。我有大量的插入要做,所以我需要最大限度地提高性能,我发现这种方法非常健壮和快速:
How to insert multiple rows into a SQLite 3 table?
那么,将一堆针对不同表的插入批处理在一起的正确语法是什么?
【问题讨论】:
-
使用 UNION ALL 代替 UNION。
-
您如何将
INSERT语句传递给 sqlite3?如果您使用需要单个语句的方法执行此操作,您将无法在单个提交中包含两个INSERT语句。
标签: sqlite