在MysqL中,您可以插入多行,如下所示:
INSERT INTO 'tablename' ('column1','column2') VALUES ('data1','data2'),('data1','data2');
更新
作为BrianCampbell points out here,sqlite 3.7.11及更高版本现在支持原始帖子的更简单的语法。但是,如果希望在旧数据库之间实现最大兼容性,则所示的方法仍然适用。
原答案
如果我有特权,我会bump andy’s reply:你可以在sqlite中插入多行,你只需要不同的语法。为了使它完全清楚,OPs MysqL示例:
INSERT INTO 'tablename' ('column1','column2') VALUES ('data1','data2');
这可以重写为sqlite:
INSERT INTO 'tablename' SELECT 'data1' AS 'column1','data2' AS 'column2' UNION ALL SELECT 'data1','data2' UNION ALL SELECT 'data1','data2'
我一直在使用它来“宽边”RoR的大型数据集,这是一个巨大的性能胜利。
关于UNION与UNION ALL的注释
由于几个人评论过,如果你使用UNION ALL(如上所示),所有的行都会被插入,所以在这种情况下,你会得到4行data1,data2。如果省略ALL,则重复的行将被删除(并且操作可能会有点慢)。我们使用UNION ALL,因为它更接近地匹配原始帖子的语义。
在结束
P.S .:请1 andy’s reply,不是我的!他首先提出了解决方案。