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

Transakcje MySQL i współbieżne wstawki

Musisz umieścić oba połączenia na poziomie izolacji transakcji, którą można serializować, aby uniknąć opisanego scenariusza, albo ustawiając tx_isolation na każdym połączeniu z:

SET @@tx_isolation = SERIALIZABLE;

lub

SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;

lub ustawiając globalny poziom izolacji za pomocą:

SET @@global.tx_isolation = SERIALIZABLE;

lub

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;

który jest dziedziczony przez każde później otwarte połączenie. Na tym poziomie transakcje będą blokować się na wszelkie zapytania, jeśli inna transakcja jest już w toku, tj. transakcja już wyemitowała zapytanie (odczyt lub zapis) w tych samych tabelach.

Zobacz dokumentację mysql aby uzyskać więcej informacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodatkowe pola z SQL MIN() i GROUP BY

  2. MYSQL Wybierz z tabel opartych na wielu wierszach

  3. Składnia SQL CREATE TABLE – wymieniona przez DBMS

  4. Jak naprawić nieznaną kolumnę MySQL Query Alias? 2018

  5. Jak obsługiwać starszą bazę danych we frameworku Django