当前位置: 首页 > 面试题库 >

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

鞠通
2023-03-14
问题内容

在MySQL中,您可以像这样插入多行:

INSERT INTO 'tablename' ('column1', 'column2') VALUES
    ('data1', 'data2'),
    ('data1', 'data2'),
    ('data1', 'data2'),
    ('data1', 'data2');

但是,尝试执行此类操作时出现错误。是否可以一次在SQLite数据库中插入多行?这样做的语法是什么?


问题答案:

更新

正如BrianCampbell在此处指出的那样,SQLite 3.7.11及更高版本现在支持原始文章的更简单语法 。但是,如果您希望在旧数据库之间实现最大兼容性,则所示的方法仍然适用。

原始答案

如果有特权,River的回答:您可以在SQLite中插入多行,只需要 不同的语法即可 。为了清楚起见,OPs MySQL示例:

INSERT INTO 'tablename' ('column1', 'column2') VALUES
  ('data1', 'data2'),
  ('data1', 'data2'),
  ('data1', 'data2'),
  ('data1', 'data2');

可以将其重铸到SQLite中,如下所示:

     INSERT INTO 'tablename'
          SELECT 'data1' AS 'column1', 'data2' AS 'column2'
UNION ALL SELECT 'data1', 'data2'
UNION ALL SELECT 'data1', 'data2'
UNION ALL SELECT 'data1', 'data2'

性能说明

我最初使用此技术从Ruby on Rails高效加载大型数据集。 但是 ,正如Jaime
Cook所指出的那样
,尚不清楚这是否可以更快地将INSERTs单个交易包装到单个交易中:

BEGIN TRANSACTION;
INSERT INTO 'tablename' table VALUES ('data1', 'data2');
INSERT INTO 'tablename' table VALUES ('data3', 'data4');
...
COMMIT;

如果效率是您的目标,则应首先尝试这样做。

关于UNION vs UNION ALL的注释

正如几个人评论的那样,如果您使用UNION ALL(如上所示),则将插入所有行,因此,在这种情况下,您将获得4行data1, data2。如果省略ALL,则将消除重复的行(并且该操作可能会慢一些)。我们正在使用UNION ALL,因为它与原始帖子的语义更加匹配。



 类似资料:
  • 问题内容: 我有一组HTML文件和一个SQLite数据库,我想使用file://方案从浏览器访问这些数据库。是否可以使用JavaScript访问数据库并创建查询(和表)? 问题答案: 不好的是,浏览器对它的支持非常有限。 这里更多信息HTML5索引,网络SQL数据库和浏览器大战 PS:正如@Christoph所说,WebSQL不再处于主动维护状态,并且Web应用程序工作组不打算进一步维护它,因此。

  • 在一个带桶的表格中进行这种多次插入,这样行吗?是否影响台面的铲斗?

  • 问题内容: 我正在尝试在SQLite(最新版本)表中插入多行,但抛出错误 从这里得到的想法,这是我的SQL查询: 但它抛出 这是我的表结构 我的查询有问题吗? 任何帮助,将不胜感激。 TIA 问题答案: 由于提到了最新版本的SQLite,因此应使用多值插入(自3.7.11版以来受SQLite支持),如下所示: 这是更短,更快,更不容易出错的方法。其他一些数据库(至少MySQL和PostgreSQL

  • 我试图一次将多行插入数据库。 用户最多可以添加5个新行,以便将血液结果插入数据库。 有一个添加更多按钮允许他们这样做。 我有一个循环来遍历每个条目,但是当我单击submit时,只会提交一个条目。第一,我不确定我哪里出了问题,任何帮助都将不胜感激。 循环在这个代码块的底部,但我不确定这就是问题所在。

  • root-context.xml文件是: servlet-context.xml文件是: 我的@Entity类是: 控制台输出为:

  • 问题内容: 我想使用React在整个DOM中多次添加组件。这个小提琴显示了我要执行的操作,并且不会引发任何错误。这是代码: HTML: JS: 我已经看过这个问题了,恐怕通过上述操作,我将冒使React组件相互干扰的风险。该问题的答案建议使用服务器端渲染,这对我来说不是一个选择,因为我正在使用Django服务器端。 另一方面,也许我在做什么就可以了,因为我只安装了一个React库实例(而不是多个组