加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是否可以在SQLite数据库中一次插入多个行?

发布时间:2020-12-12 19:22:55 所属栏目:百科 来源:网络整理
导读:在MySQL中,您可以插入多行,如下所示: INSERT INTO 'tablename' ('column1','column2') VALUES ('data1','data2'),('data1','data2'); 但是,当我尝试做这样的事情,我得到一个错误。是否可以在SQLite数据库中一次插入多个行?这是什么语法? 更新 作为Bri
在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,不是我的!他首先提出了解决方案。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读