【发布时间】:2012-01-04 23:09:29
【问题描述】:
在 DB2 中,我需要执行 SELECT FROM UPDATE,将更新 + 选择放入单个事务中。
但我需要确保每笔交易只更新一条记录。
熟悉MySQL's UPDATE选项中的LIMIT子句
限制可更新的行数
我在DB2's UPDATE reference 中寻找类似的东西,但没有成功。
如何在 DB2 中实现类似的功能?
编辑: 在我的场景中,我必须根据要求提供 1000 个优惠券代码。我只需要选择(任何)尚未给出的。
【问题讨论】:
-
为什么不添加一个包含要更新的行的主键的
WHERE条件? -
我也会怀疑更新(本质上是什么)随机,单个行,并获取它
-
在我的场景中,我必须按要求提供1k优惠券代码,所以我只需要选择一个尚未提供的。
-
您可以即时生成它吗?定义一个将其插入表中并将其返回给查询的存储过程?否则,我使用的 DB2 版本(iSeries V6R1)不支持
UPDATE用于数据更改引用的语句(仅INSERT),这可以很容易地只获得一行......或者,什么关于让更新选择MAX()或MIN()无人认领的优惠券(可能存在并发问题)?
标签: mysql database transactions db2