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

PHP:sterownik PGSQL i AutoCommit?

Po pierwsze, nie ma trybu AutoCommit w PostgreSQL, a funkcje pg_* API PHP nie próbują go emulować.

doc mówi

Gwarantuje to, że pg_query("UPDATE1 ..; UPDATE2...") wykonuje w jednej transakcji i ma wpływ na dane wszystko albo nic.

Sekwencja

pg_query("BEGIN");
pg_query("UPDATE1...");
pg_query("UPDATE2..");
pg_query("COMMIT");

jest odpowiednikiem pg_query("UPDATE1 ..; UPDATE2...") w odniesieniu do integralności danych (stan w połowie ukończony nie może się zdarzyć).

Jeśli chodzi o uwagę „chyba że istnieją wyraźne BEGIN/COMMIT...”, ma to znaczenie tylko wtedy, gdy nie są one na początku i na końcu całego łańcucha instrukcji SQL. Oznacza to, że pg_query("BEGIN; update1; update2; COMMIT;"); jest odpowiednikiem pg_query("update1; update2;") ale (oczywiście) nie jest odpowiednikiem pg_query("update1; COMMIT; update2;")




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ustawić domyślną datę wartości Postgresql, taką jak „RRRRMM”?

  2. W Railsach, jak mogę zapytać db o zagregowaną liczbę i pogrupować według tygodnia?

  3. PG::Błąd:SELECT DISTINCT, ORDER BY wyrażenia muszą pojawić się na liście wyboru

  4. Funkcja LEAST() w PostgreSQL

  5. Dołącz do czterech stołów z udziałem LEFT JOIN bez duplikatów