PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Transakcje nie działają dla mojej bazy danych MySQL

Prawdopodobnie tabela jest domyślnie tworzona z silnikiem pamięci MyISAM. Silnik pamięci MyISAM nie obsługuje transakcji.

Utwórz tabelę

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

Zapytanie

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

Wynik

liczba(*)

     1

Tworzenie tabeli InnoDB

Zapytanie

ALTER TABLE a ENGINE=INNODB; 

Zapytanie

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

Wynik

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień sortowanie bazy danych, Ctype w Postgresql

  2. Oblicz następny klucz podstawowy - o określonym formacie

  3. Jak przekonwertować bazę danych postgres na sqlite

  4. Metoda org.postgresql.jdbc4.Jdbc4Connection.isValid(int) nie została jeszcze zaimplementowana

  5. Skrypt powłoki do wykonywania poleceń pgsql w plikach