Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跨进程的PostgreSQL偏移字段一致性_Postgresql - Fatal编程技术网

跨进程的PostgreSQL偏移字段一致性

跨进程的PostgreSQL偏移字段一致性,postgresql,Postgresql,我试图将Postgres表1复制到另一个表2,同时更改其中一列的值。为了加快传输速度,我在表1中运行了10个不同的进程,每个进程都有不同的偏移量,例如,1st process:SELECT*from table OFFSET offset1 LIMIT x然后复制到表2,第二个过程:从表偏移量2限制x中选择*然后复制到表2 但是,即使我的表1中没有重复的行,我的表2中也有重复的行(x小于offset2-offset1)。是否有可能相同的偏移量值在不同的进程中不指向表中的同一行?如果是,在Post

我试图将Postgres表1复制到另一个表2,同时更改其中一列的值。为了加快传输速度,我在表1中运行了10个不同的进程,每个进程都有不同的偏移量,例如,
1st process
SELECT*from table OFFSET offset1 LIMIT x然后复制到
表2
第二个过程
从表偏移量2限制x中选择*然后复制到
表2


但是,即使我的
表1中没有重复的行,我的
表2中也有重复的行(
x
小于
offset2-offset1
)。是否有可能相同的
偏移量
值在不同的进程中不指向表中的同一行?如果是,在Postgres中修改列时复制表的更好方法是什么?谢谢

如果没有
order by
语句,限制和偏移很少有意义。。。SQL对行顺序不提供任何保证,除非您将其显式化。因此,添加一个
orderby
子句

此外,如果您希望批发复制表,那么最好简单地:

insert into table2 select * from table1

近似重复:。另一个问题的提问者使用了
order by
,但不是唯一的表达式。顺便说一句,丹尼斯的回答中没有这一点。仅使用排序依据是不够的,它需要应用于所有行中唯一的字段或字段组合或表达式。此外,您还应该将时间
创建表2作为选择…
,除非您的postgres数据分区分布在大量物理驱动器上,否则,如果这些会话相互竞争以获得对磁盘的访问权,则可能比10个不同的进程要快