sql >> データベース >  >> RDS >> Mysql

INT値+1を更新して新しい値を返すことはできますか?

    簡単な答え-いいえ、それは不可能です。

    長い答え、はい、指定された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は、ストアドプロシージャがテーブル自体をロックすることを許可していないようです。



    1. SQL SELECT speed int vs varchar

    2. Oracleデータベースにファイルを挿入する方法は?

    3. mysqlアダプターをインストールしてください'geminstall activerecord-mysql-adapter'

    4. mysqlワークベンチレコードの制限