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

Transazioni non funzionanti per il mio DB MySQL

Probabilmente la tabella viene creata con il motore di archiviazione MyISAM come predefinito. Il motore di archiviazione MyISAM non supporta le transazioni.

Crea tabella

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

Interroga

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

Risultato

conta(*)

     1

Realizzare il tavolo InnoDB

Interroga

ALTER TABLE a ENGINE=INNODB; 

Interroga

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

Risultato

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