PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Les transactions ne fonctionnent pas pour ma base de données MySQL

La table est probablement créée avec le moteur de stockage MyISAM par défaut. Le moteur de stockage MyISAM ne prend pas en charge les transactions.

Créer un tableau

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

Requête

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

Résultat

compter(*)

     1

Faire la table InnoDB

Requête

ALTER TABLE a ENGINE=INNODB; 

Requête

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

Résultat

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