PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Transaktionen funktionieren nicht für meine MySQL-DB

Wahrscheinlich wird die Tabelle standardmäßig mit der MyISAM-Speicher-Engine erstellt. Die MyISAM-Speicher-Engine unterstützt keine Transaktionen.

Tabelle erstellen

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

Abfrage

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

Ergebnis

Zählung(*)

     1

Erstellen der Tabelle InnoDB

Abfrage

ALTER TABLE a ENGINE=INNODB; 

Abfrage

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

Ergebnis

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