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

MySql INSERT MAX()+1の問題

    次のようなものを使用できます:

    INSERT INTO users (user_id, name)
    SELECT 1 + coalesce((SELECT max(user_id) FROM users WHERE name='Bob'), 0), 'Bob';
    

    しかし、そのようなクエリは競合状態につながる可能性があります。トランザクションを実行していることを確認し、実行する前にユーザーテーブルをロックしてください。そうしないと、同じ番号の2人のボブになってしまう可能性があります。



    1. mysqlWHERE句で5,000から100,000の値を渡す正しい方法

    2. クエリに基づいてすべての行を配列にフェッチします

    3. TSQLでPRINTバッファをフラッシュするにはどうすればよいですか?

    4. phpmyadminの結果で推定行数が大きく異なるのはなぜですか?