如何在SQLite 3表中插入多行?

时间:2012-04-06 03:22:44

标签: sql sqlite insert bulkinsert

在MySQL中我会使用

INSERT INTO `mytable` (`col1`, `col2`) VALUES
  (1, 'aaa'),
  (2, 'bbb');

但这会导致SQLite出错。 SQLite的正确语法是什么?

3 个答案:

答案 0 :(得分:14)

此前已经回答过:Is it possible to insert multiple rows at a time in an SQLite database?

回答您对OMG Ponies回答的评论:

从版本3.7.11开始,SQLite支持多行插入。理查德希普评论道:

"The new multi-valued insert is merely syntactic suger (sic) for the compound insert. 
There is no performance advantage one way or the other."

答案 1 :(得分:8)

使用UNION:

INSERT INTO `mytable` 
 (`col1`, `col2`) 
SELECT 1, 'aaa'
UNION ALL
SELECT 2, 'bbb'

UNION ALLUNION更快,因为UNION会删除重复项 - UNION ALL没有。

答案 2 :(得分:2)

从版本2012-03-20(3.7.11)开始,sqlite支持以下INSERT语法:

INSERT INTO 'tablename' ('column1', 'column2') VALUES
  ('data1', 'data2'),
  ('data3', 'data4'),
  ('data5', 'data6'),
  ('data7', 'data8');

阅读文档:http://www.sqlite.org/lang_insert.html

SQLite INSERT Statement Diagram