1
A
回答
8
请确保您在运行任何更新之前进行备份,以免发生错误。
假设(根据你的问题),你做不希望seqid
4修改:
update MyTable
set seqid = seqid + 1
where seqid between 1 and 3
如果你只是想增加每seqid
,做到:
update MyTable
set seqid = seqid + 1
编辑补充: 如果你想在做出这样的改变之前看到你正在做的事情的结果(做这种改变时一个好主意):
begin tran
select seqid, count(*)
from Mytable
where seqid between 1 and 4
update MyTable
set seqid = seqid + 1
where seqid between 1 and 3
select seqid, count(*)
from Mytable
where seqid between 1 and 4
--rollback tran
--commit tran
如果您看到Seqids的数量是对的,请不要忘记提交;不要让事务处于打开状态,特别是在prod上!但是当你不肯定会有什么影响时,这对于测试更新或删除是非常好的主意。
另一种技术尝试,如果你有一个复杂的更新是:
update mt
set seqid = seqid + 1
--select seqid, seqid+1, *
From MyTable mt
where seqid between 1 and 3
这样你就可以运行选择,看看提前正是每个值将被更改为。
2
这是更普遍的情况,这使得没有关于新旧值是如何相关的假设:
update foo
set seqid = case seqid
when 1 then 2
when 2 then 3
when 3 then 4
end
where seqid in (2,3,4)
相关问题
- 1. 从多个更新查询中返回一条“记录更新”
- 2. 如何显示多条记录的最新更新记录
- 3. 使用mysql_fetch_assoc并更新每条记录
- 4. CakePHP:使用hasMany更新多条记录
- 5. 使用FormView/UpdateView更新多条记录
- 6. Coldfusion:如何用一个ID更新多条记录
- 7. 如何更新数千条记录
- 8. 如何根据条件更新记录?
- 9. Rails更新记录列仅更新字符串的一部分
- 10. Mongoid更新多条记录
- 11. 更新多条记录
- 12. SQL更新两条记录
- 13. 如何显示更新查询更新了多少条记录?
- 14. 更新MongoDB记录会重写整个记录还是仅更新字段?
- 15. 使用另一个表中的值更新某条记录
- 16. mysql - 一次更新两条记录
- 17. 如何更新同一个表中另一条记录的记录?
- 18. 如何使用nhibernate更新记录
- 19. 如何使用Sequelize更新记录?
- 20. php更新脚本,只更新最后一条记录
- 21. 从Excel VBA更新Access 2010表只更新一条记录
- 22. 注销PHP会话 - 仅更新最后一条记录
- 23. 使用ajax更新记录
- 24. 使用SQL更新记录
- 25. 更新记录使用EF
- 26. 使用WHILE循环更新回显数据。只更新一条记录
- 27. 的Rails 3 - 更新多条记录一种形式
- 28. Codeigniter - 如何更新记录?
- 29. 如何更新记录?
- 30. 如何更新记录