【发布时间】:2015-02-14 01:54:22
【问题描述】:
我在 MySQL 中使用 Perl DBI 模块,并在更新行时尝试获取初始值,然后再将其加 1。
如果当前值为 1000,我需要返回 1000 的值,然后将值加 1。
我在 perl 中使用这个语句来使用一个事务...
update TABLE_NAME set ID = (\@cur_value := ID) + 1
我知道我可以先选择然后更新为两个语句或手动锁定表,但在我们的平台上事务发生得太快以至于可能导致不一致,这是最快的方法。
但是我根本找不到使用此语句在增量之前返回原始值的方法。
它在 ASP 中运行良好,如下所示:
qry = "update V15_TRACKING set TRACKING_ID = (@cur_value := TRACKING_ID) + 1 where TRACKING_TYPE='ABC'"
Set oRS = oConn.Execute(qry)
qry = "select @cur_value"
if not oRS.EOF then
while not oRS.EOF
CurrTrackingID = oRs.Fields("@cur_value")
oRS.movenext
wend
oRS.close
end if
请有人告诉我我需要做什么才能在 Perl 中返回原始值,因为我到处搜索并尝试了各种解决方案。
【问题讨论】: