簡単な答え-いいえ、それは不可能です。
長い答え、はい、指定されたIDの値をインクリメントするストアドプロシージャを使用すると、新しい値を取得して返します。
これをMySQL5.1.59でテストしました:
CREATE PROCEDURE increment (IN uniqid VARCHAR(255))
BEGIN
UPDATE `table` SET number = number + 1 WHERE id = uniqid;
SELECT number FROM `table` WHERE id = uniqid;
END
使用法:
CALL increment(uniqid)
複数の同時アクセスが可能な場合は、LOCK
を使用することをお勧めします。 操作のアトミック性を確保するために最初にテーブル-MySQLは、ストアドプロシージャがテーブル自体をロックすることを許可していないようです。