Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn hàng loạt và nhận lại id laravel

Vâng, bạn có thể lấy Id cuối cùng từ bảng .. Sau đó, sau khi chèn thêm id cuối cùng vào số mảng của bạn .. Nhưng bạn sẽ phải đối mặt với một vấn đề và đó là nếu bạn có 2 hoặc nhiều người dùng chèn một số bản ghi vào bảng này đồng thời .. để bạn có thể sử dụng The Transaction

 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();
}

hoặc

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);

});

Tài liệu giao dịch cơ sở dữ liệu

Bài viết rất hữu ích về giao dịch cơ sở dữ liệu

Chỉnh sửa

Bạn có thể tạo một cột duy nhất và gọi nó làm ví dụ unique_bulk_id .. Điều này sẽ giữ chuỗi được tạo ngẫu nhiên cho dữ liệu được chèn .. sau khi chèn, bạn có thể lấy dữ liệu được chèn bằng This unique_bulk_id .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng LIKE trong bindParam cho một truy vấn MySQL PDO

  2. Lỗi MYSQL:1045 (28000):Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost'

  3. Làm thế nào để tính toán phần trăm?

  4. MySQL:Quyền truy cập bị từ chối đối với người dùng 'user' @ 'IP_ADDRESS' - Không cho phép truy cập từ xa đối với một số máy chủ đối với các máy chủ khác

  5. MySQL - Không thể thêm hoặc cập nhật hàng con:ràng buộc khóa ngoại không thành công