当前位置: 首页 > 知识库问答 >
问题:

SQLite中的批量更新

澹台承
2023-03-14

我有两个结构相同的表,我想使用另一个表的数据更新一个表,匹配主键。SQLite有一个with(CTE)语句,但以下语句不起作用(sqlite3 v.3.29.0):

sqlite> select * from main;
1|A
2|B
4|D
5|E
6|F
sqlite> select * from temp;
1|aa
2|bb
3|cc
4|dd
5|ee
sqlite> with mapping as (select main.ID, temp.Desc from main join temp on temp.ID=main.ID) update main set Desc=mapping.Desc where main.ID=mapping.ID;
Error: no such column: mapping.Desc

我尝试过使用“选择main.ID作为ID,选择temp.Desc作为Desc”,但得到了相同的错误消息。

共有1个答案

乐正秦斩
2023-03-14

要从cte更新主表,请使用子查询,因为sqlite不支持updatefrom

with mapping as 
(select main.ID, temp.Desc 
 from main 
 join temp on temp.ID=main.ID) 
update main set Desc=
    (select Desc from mapping where ID = main.ID limit 1);

看小提琴

 类似资料:
  • 我使用的是Play framework 1.2.5和Play-Morphia模块。我想知道是否有一种方法可以在一个Morphia查询中更新许多对象。我在https://github.com/greenlaw110/play-morphia/blob/master/documentation/manual/crud.textile中找到了这个示例,但是我似乎不能在norder中使用“in”操作来查找

  • 问题内容: 我在将不同的缓冲区大小插入到本地SQLite DB中时发现,当缓冲区大小为10,000时,插入10,000,000行数据需要花费近8分钟的时间。换句话说,它需要1,000次写入来存储所有内容。 8分钟存储10,000,000个似乎太长了(或者是?) 可以优化以下任何一项以提高速度吗?请注意,插入的数据是字符的随机集合。 创建表格后,通过 是否可以进一步优化上述任何一项? 问题答案: 我

  • 一、简介 方便用户在设置URL规则时更新url,无需手动去更新各页面URL。只需选择就能批量更新URL即可。 二、功能演示 1.批量更新URL 1、仅当内容页URL规则发上变化时,请批量更新,地址未改变时,不需要更新 。 2、规则设置:设置 > 相关设置 > 管理栏目 > 添加或修改栏目 选择需要更新的模型和栏目,输入每轮更新的信息数目提交则完成批量更新URL操作。如下图所示:

  • 一、简介 主要用来操作黄页模块的相关更新操作 ! 1、仅当启用、关闭伪静态时,请批量更新所有链接地址,除此,不需要更新 。 2、启用伪静态在模块配置里。 3、更新企业URL,只需选中企业库模型即可,不必选分类。 二、功能演示

  • 问题内容: 我有一个包含10列的表格,在该表格中,我有成千上万的行。在某些情况下,我想一次更新超过1万条记录。目前,我的方案代码按顺序运行, 我以为不是将相同的查询运行10K次,而是将所有ID添加到字符串中,然后运行一个更新查询,例如, 实际的数据库查询可能是这样的, 假设我有主键ID,例如 所以在第一种情况下,我的查询将像 我的批量更新查询将像 所以我的问题是,通过批量更新可以提高性能(执行时间

  • 我正在写一个数据挖掘程序,可以批量插入用户数据。 当前SQL只是一个普通的批量插入: 如果发生冲突,如何进行更新?我试过: 但它抛出