値をインクリメントしてから取得して返す次の関数があります。私が直面する可能性があると考えている問題の 1 つは、更新と別のトランザクションの選択の間に currentVal 値を更新するため、間違った更新値を取得することになります。正しいですか?これを考えて?
CREATE FUNCTION INCREMENT()
RETURNS INT
BEGIN
DECLARE newVal;
UPDATE table_x SET currentVal=currentVal+1;
SELECT currentVal INTO newVal FROM table_x;
RETURN newVal;
END;