sql >> Databasteknik >  >> RDS >> PostgreSQL

Transaktioner fungerar inte för min MySQL DB

Troligen är tabellen skapad med MyISAM-lagringsmotorn som standard. MyISAM-lagringsmotorn stöder inte transaktioner.

Skapa tabell

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

Fråga

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

Resultat

antal(*)

     1

Gör tabellen InnoDB

Fråga

ALTER TABLE a ENGINE=INNODB; 

Fråga

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

Resultat

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



  1. Konfiguration av MySQL 8

  2. Ersätt en sträng med en annan sträng i SQL Server (T-SQL)

  3. Hur man migrerar från Oracle till MySQL / Percona Server

  4. Distribuera databas från källkontroll