
例如,表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_objectFROM (select ID_object from t_object order by ID_object limit 100) tWHERE t.ID_object = t_device.ID_object;总结
以上是内存溢出为你收集整理的postgresql – 在postgres中使用限制和偏移量更新表全部内容,希望文章能够帮你解决postgresql – 在postgres中使用限制和偏移量更新表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)