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

MySQL:挿入中に自動インクリメントを再利用します

    はい。ご存知のとおり、ID値はBEFOREINSERTトリガーでまだ生成されていません。ただし、AFTERINSERTトリガーでNEW.thread値を変更することはできません。

    競合状態を引き起こす可能性があるため、INFORMATION_SCHEMAの読み取りに依存することはできません。

    INSERTを実行して、すぐに実行する必要があります:

    UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;
    

    ルートコメントの場合。

    同様のトピックに関する私の過去の回答も参照してください:



    1. mysqlデータを使用した高低価格での並べ替え

    2. SQL-IF EXISTS UPDATE ELSE INSERT INTO

    3. 大量のテキストまたはHTMLを保存するためにどの列データ型を使用する必要がありますか

    4. ユーロ記号がサイトに表示されない