sql >> Database teknologi >  >> RDS >> PostgreSQL

Transaktioner virker ikke for min MySQL DB

Formentlig er tabellen oprettet med MyISAM-lagringsmotoren som standard. MyISAM-lagringsmotor understøtter ikke transaktioner.

Opret tabel

CREATE TABLE a ( id SERIAL PRIMARY KEY) ENGINE = MYISAM;

Forespørgsel

DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;

Resultat

tæl(*)

     1

Gør tabellen til InnoDB

Forespørgsel

ALTER TABLE a ENGINE=INNODB; 

Forespørgsel

DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;

Resultat

count(*)  
----------
         0



  1. PostgreSQL vs. Linux-kerneversioner

  2. Sådan udføres en Oracle-lagret procedure via et databaselink

  3. Betinget bestilling af

  4. Sådan eksporteres forespørgselsresultater til en .txt-fil, når du bruger SQLcl (Oracle)