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

PHP:PGSQL-driver og AutoCommit?

For det første er der ingen AutoCommit-tilstand i PostgreSQL, og pg_*-funktionerne i PHP API forsøger ikke at efterligne en.

pg_querys dokument siger

Så det garanterer, at pg_query("UPDATE1 ..; UPDATE2...") udføres i én transaktion og har en alt-eller-intet effekt på dataene.

Sekvensen

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

svarer til pg_query("UPDATE1 ..; UPDATE2...") med hensyn til dataintegritet (halvfærdig tilstand kan ikke ske).

Hvad angår noten "medmindre der er eksplicit BEGIN/COMMIT...", er den kun relevant, hvis disse ikke er i begyndelsen og slutningen af ​​hele kæden af ​​SQL-sætninger. Det vil sige pg_query("BEGIN; update1; update2; COMMIT;"); svarer til pg_query("update1; update2;") men (naturligvis) ikke svarer til pg_query("update1; COMMIT; update2;")




  1. LIBSODIUM dekrypterer data inde i mysql-forespørgslen ligesom med AES_DECRYPT

  2. Android - Cursor onMapReady (Markører)

  3. MySQL fejlkode:1175 under OPDATERING (MySQL-Workbench vs. konsol)

  4. Returner den første mandag i hver måned i SQLite