PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Transações não funcionam para meu banco de dados MySQL


Provavelmente a tabela é criada com o mecanismo de armazenamento MyISAM como padrão. O mecanismo de armazenamento MyISAM não suporta transações.

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

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

Resultado

conta(*)

     1

Fazendo a tabela InnoDB

Consulta
ALTER TABLE a ENGINE=INNODB; 

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

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