postgresql – 在postgres中使用限制和偏移量更新表

您是否可以使用限制和偏移量的其他表格更新表格?

例如,表t_device有600行
和t_object有100行

我想更新一个列,但只更新前100行与子查询的偏移量

update t_device set id_object = 
(select id_object from t_object limit 100) limit 100 offset 0;

update t_device set id_object = 
(select id_object from t_object limit 100) limit 100 offset 100;

可能吗?我无法找到一个解决方案来修改t_object中t_device中的值

我正在使用postgres 8.4

>如果你只是将id_object设置为id_object,那UPDATE语句似乎不会有多大用处,尽管是​​以半随机顺序.
>如果t_device表UPDATE语句中没有唯一的WHERE谓词,则无法保证只更新100行,这就是我假设外部LIMIT的意图.
>您应该在子查询中有一个ORDER BY,以确保您没有在行中重叠.

以下内容可能对您有用.

UPDATE t_device set id_object = t.id_object
FROM (select id_object from t_object order by id_object limit 100) t
WHERE t.id_object = t_device.id_object;

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...