是否可以在SQLite数据库中一次插入多个行?
在MySQL中,您可以插入多行,如下所示:
INSERT INTO 'tablename' ('column1','column2') VALUES ('data1','data2'),('data1','data2'); 但是,当我尝试做这样的事情,我得到一个错误。是否可以在SQLite数据库中一次插入多个行?这是什么语法? 更新作为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,不是我的!他首先提出了解决方案。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |