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

Iva*_*van 6 sql sqlite bulkinsert insert

在MySQL我会用

INSERT INTO `mytable` (`col1`, `col2`) VALUES
  (1, 'aaa'),
  (2, 'bbb');
Run Code Online (Sandbox Code Playgroud)

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

Leo*_*rea 14

这在此之前已经得到了解答:是否可以在SQLite数据库中一次插入多行?

回答您对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."
Run Code Online (Sandbox Code Playgroud)


OMG*_*ies 8

使用UNION:

INSERT INTO `mytable` 
 (`col1`, `col2`) 
SELECT 1, 'aaa'
UNION ALL
SELECT 2, 'bbb'
Run Code Online (Sandbox Code Playgroud)

UNION ALL更快UNION,因为UNION删除重复 - UNION ALL没有.


mjb*_*mjb 6

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

INSERT INTO 'tablename' ('column1', 'column2') VALUES
  ('data1', 'data2'),
  ('data3', 'data4'),
  ('data5', 'data6'),
  ('data7', 'data8');
Run Code Online (Sandbox Code Playgroud)

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

SQLite INSERT 语句图