Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw zbiorczo i otrzymaj zwrócone identyfikatory laravel

Cóż, możesz pobrać ostatni identyfikator z tabeli .. Następnie po wstawieniu dodaj ostatni identyfikator do liczby swojej tablicy .. Ale napotkasz problem i to jest, jeśli masz 2 lub więcej użytkowników wstawiło kilka rekordów do tej tabeli w tym samym czasie .. dzięki czemu możesz korzystać z Transakcji

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

lub

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

});

Dokumentacja transakcji w bazie danych

Bardzo przydatny artykuł o transakcjach w bazach danych

Edytuj

Możesz stworzyć unikalną kolumnę i wywołać ją na przykład unique_bulk_id .. To będzie przechowywać losowo wygenerowany ciąg dla wstawionych danych .. po wstawieniu możesz uzyskać wstawione dane przez Ten 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. mysql Błąd krytyczny:nie można przydzielić pamięci dla puli buforów

  2. Jak uzyskać identyfikator ostatniego zaktualizowanego wiersza w MySQL?

  3. Gettext lub tłumaczenie bazy danych

  4. Uruchom lub zatrzymaj bazę danych mysql za pomocą programowania java

  5. AKTYWATORY, które powodują niepowodzenie INSERT? Możliwy?