【发布时间】:2015-02-16 09:00:39
【问题描述】:
我要更新sqlite表,下面是更新一行的例子:
update tpecroad set tnode = (SELECT b.nodeid FROM "TPECRoad" as a
join tpecnode as b
where pointn(a.geometry,numpoints(a.geometry)) = b.geometry and a.pk =1)
where pk=1
但是有168432行要更新,有没有更快的方法来更新大量数据?
好像改了 a.pk=1~168432 和 pk=1~168432
非常感谢!!
【问题讨论】:
-
您是说要更新 pk 介于 1 和 168432 之间的记录,即所有记录?如果是这样,只需删除 pk = 1 的两个实例
-
我的意思是,愚蠢的功能是进行 168432 次查询,并且只更改了 (a.pk =2 pk=2).. 3.4.5...
-
您实际使用什么代码来尝试更新所有记录?
-
update tpecroad set tnode = (SELECT b.nodeid FROM "TPECRoad" as a join tpecnode as b where pointn(a.geometry,numpoints(a.geometry)) = b.geometry ) //但是所有行数据都相同
标签: sql sqlite spatialite