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

Er inkrementering af et felt i MySQL atomart?

Skrivningen er atomart, men en stigning kræver også en læsning. Så spørgsmålet er:Er du sikker på, at læsningen er sikker, med andre ord, er du sikker på, at en anden tråd, der udfører stigningen, ikke ender med den samme værdi, der skal stige? Jeg er i tvivl. Den 100 % korrekte måde at gøre dette på ville være.

-- begin transaction here

select counter from myCounters where counter_id = 1 FOR UPDATE;

-- now the row is locked and nobody can read or modify its values

update myCounters set counter = ? where id = 1;

-- set ? to counter + 1 programmatically

commit; -- and unlock...


  1. Understøtter PostgreSQL gennemsigtig komprimering af tabeller (fragmenter)?

  2. Benchmarking Managed PostgreSQL Cloud Solutions:Anden del - Amazon RDS

  3. SQL-OPDATERING for begyndere

  4. Jeg kan ikke få min login-formular til at oprette forbindelse til at interagere korrekt med mySQL-databasen