您是否可以使用限制和偏移量的其他表格更新表格?
例如,表t_device有600行
和t_object有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,以确保您没有在行中重叠.
>如果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;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。