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

更新と選択を伴うLaravel4専用トランザクション

    テーブルをロックしたり、トランザクションでロックしたりすることを忘れました。これには、より良いパターンがあります:

    • 一意のトークンを生成する
    • そのトークンを次に利用可能なレコードに割り当てます
    • トークンを取得した行を読み取り、処理します

    そうすれば、ロックやトランザクションはまったく必要ありません(DBはトークンを1つの未使用のレコードにのみ割り当てるため)。

    擬似コード:

    $token = time(); //Only you have very low concurrency. Otherwise use something more unique, like a GUID or an identity value from a tokens table.
    
    EXEC SQL: "UPDATE mytable SET token = $token WHERE token IS NULL LIMIT 1"
    
    EXEC SQL: "SELECT id FROM mytable WHERE token = $token"
    
    process($id);
    



    1. Objective-CとMySQL

    2. IPアドレスの取得方法[MYSQL]

    3. mysqlの集計関数を使用して変数に値を割り当てるにはどうすればよいですか?

    4. SQL Server(T-SQL)でAM/PMを時間値に追加する方法