PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

PHP:Trình điều khiển PGSQL và AutoCommit?

Đầu tiên, không có chế độ AutoCommit trong PostgreSQL và các hàm pg_ * của PHP API không cố gắng mô phỏng một.

doc của pg_query nói

Vì vậy, nó đảm bảo rằng pg_query("UPDATE1 ..; UPDATE2...") thực hiện trong một giao dịch và có ảnh hưởng hoàn toàn hoặc không ảnh hưởng đến dữ liệu.

Trình tự

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

tương đương với pg_query("UPDATE1 ..; UPDATE2...") liên quan đến tính toàn vẹn của dữ liệu (không thể xảy ra trạng thái nửa hoàn thiện).

Đối với ghi chú "trừ khi có BEGIN / COMMIT ..." rõ ràng, nó chỉ có liên quan nếu chúng không nằm ở đầu và cuối của toàn bộ chuỗi câu lệnh SQL. Nghĩa là, pg_query("BEGIN; update1; update2; COMMIT;"); tương đương với pg_query("update1; update2;") nhưng (rõ ràng) không tương đương với 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. Định dạng ngày Postgres UTC &truyền kỷ nguyên, đảo ngược ký hiệu

  2. Xóa ổ khóa mà không cần pid trong postgres

  3. Các hàm toán học PostgreSQL

  4. Hibernate 3.6.10 không xóa theo tầng thông qua OneToMany JoinTable

  5. Hàm tương tự trong Postgres với pg_trgm