sql >> Database teknologi >  >> RDS >> Mysql

MySQL-transaktioner og samtidige indsættelser

Du skal placere begge forbindelser i serialiserbart transaktionsisoleringsniveau for at undgå det scenarie, du beskriver, enten ved at indstille tx_isolation på hver forbindelse med:

SET @@tx_isolation = SERIALIZABLE;

eller

SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;

eller ved at indstille det globale isolationsniveau med:

SET @@global.tx_isolation = SERIALIZABLE;

eller

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;

som arves af enhver efterfølgende åbnet forbindelse. På det niveau vil transaktioner blokere for eventuelle forespørgsler, hvis en anden transaktion allerede er i gang, dvs. en transaktion har allerede udsendt en forespørgsel (læs eller skriv) på de samme tabeller.

Se mysql-dokumentationen for yderligere detaljer.



  1. Sådan fortsætter du med STORE BLOB'er (>100MB) i Oracle ved hjælp af Hibernate

  2. Hvordan opdager man forespørgsel, der holder låsen i Postgres?

  3. Hvordan ISNUMERIC() virker i SQL Server

  4. Sådan defineres en brugerdefineret ORDER BY order i mySQL