Я использую модуль DBI Perl с MySQL и пытаюсь получить начальное значение перед добавлением 1 к нему при обновлении строки.Perl MySQL DBI - обновить и получить последнее значение
Если текущее значение было 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, как я искал везде и перепробовали все виды решений.
Там не было никакого смысла код публикации, так как у меня не было примера который будет работать, и предположил, что заявление о том, где я боролся, было самоочевидным, и кто-то вроде вас, вероятно, вернется с примером того, что будет работать. Но я вижу, что мне нужно делать. Я довольно склонна к perl, но это было у меня голова царапин. Но спасибо за ваш вклад, очень ценим. –
Ну, рад, что я мог бы помочь. Если это разрешило ваш вопрос, отметьте его как принятый –