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

一括挿入して返されたIDを取得するlaravel

    テーブルから最後のIDを取得できます..挿入後、配列のカウントに最後のIDを追加します..しかし、問題が発生します。これは、2人以上のユーザーがこのテーブルにレコードを挿入した場合です。同時に..トランザクションを使用できるように

     try{
        DB::beginTransaction();
    
       // 1- get the last id of your table ($lastIdBeforeInsertion)
    
       // 2- insert your data
        Model::insert($array);
    
      // 3- Getting the last inserted ids
      $insertedIds = [];
      for($i=1; $i<=theCountOfTheArray; $i++)
         array_push($insertedIds, $lastIdBeforeInsertion+$i);
    
    });
    
        DB::commit();
    }catch(\Exception $e){
        DB::rollback();
    }
    

    または

    DB::transaction(function() {
    
       // 1- get the last id of your table ($lastIdBeforeInsertion)
    
       // 2- insert your data
       Model::insert($array);
    
      // 3- Getting the last inserted ids
      $insertedIds = [];
      for($i=1; $i<=theCountOfTheArray; $i++)
         array_push($insertedIds, $lastIdBeforeInsertion+$i);
    
    });
    

    データベーストランザクションドキュメント

    データベーストランザクションに関する非常に役立つ記事

    編集

    一意の列を作成して、例として呼び出すことができますunique_bulk_id ..これは、挿入されたデータに対してランダムに生成された文字列を保持します..挿入後、このunique_bulk_idによって挿入されたデータを取得できます。 。



    1. 現在のアイテムIDの前後のN個の前のアイテムとM個の次のアイテムを選択します

    2. Wordpressユーザーとusermeta-1つのテーブルの複数の行を別のテーブルの1つの行に結合する

    3. MYSQL自己結合はどのように機能しますか?

    4. Jquery、PHP、Mysqlを使用したAjaxページ付け