PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PHP:Driver PGSQL dan AutoCommit?

Pertama, tidak ada mode AutoCommit di PostgreSQL dan fungsi pg_* dari PHP API tidak mencoba menirunya.

doc pg_query mengatakan

Jadi itu menjamin bahwa pg_query("UPDATE1 ..; UPDATE2...") dijalankan dalam satu transaksi dan memiliki efek semua-atau-tidak sama sekali pada data.

Urutan

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

setara dengan pg_query("UPDATE1 ..; UPDATE2...") berkaitan dengan integritas data (keadaan setengah jadi tidak dapat terjadi).

Adapun catatan "kecuali ada BEGIN/COMMIT eksplisit...", itu hanya relevan jika ini tidak di awal dan akhir dari seluruh rantai pernyataan SQL. Yaitu, pg_query("BEGIN; update1; update2; COMMIT;"); setara dengan pg_query("update1; update2;") tapi (jelas) tidak sama dengan 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. Postgres baru saja berhenti bekerja secara acak (Rails, PGSQL.5432)

  2. node-postgres $1 IS NULL kesalahan

  3. Di Postgresql, paksa unik pada kombinasi dua kolom

  4. Tampilkan nama kolom dengan nilai maksimal antara beberapa kolom

  5. Akses PostgreSQL melalui C++-Interface (Kesalahan Linker)