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

De-alokasi kueri yang disiapkan

Saat membatalkan alokasi pernyataan, nilai kembalian pg_query menunjukkan keberhasilan atau tidak, seperti untuk "pernyataan utilitas" apa pun. Pada kegagalan itu harus mengembalikan false. Misalnya:

 if (!pg_query($cnx, "deallocate foobar")) {
   echo "Error deallocate: " . pg_last_error($cnx);
 }
 else {
  echo "deallocate successful";
 }

Ini menampilkan:

Perhatikan bahwa nama pernyataan yang akan dideallocate tidak boleh diapit oleh tanda kutip tunggal, karena ini adalah pengenal, bukan literal string. Jika perlu ditutup karena karakter yang bermasalah, dapat dilakukan dengan pg_escape_identifier (php> =5.4.4)

Untuk membersihkan sesi, bahkan tidak perlu mengulangi pernyataan yang telah disiapkan dan membatalkan alokasinya satu per satu, Anda dapat menghubungi DEALLOCATE ALL sebagai gantinya, masih dengan pg_query .

Ada juga pernyataan lain yang melakukan lebih banyak pembersihan dalam satu kueri:DISCARD ALL

Juga, semua ini bahkan tidak diperlukan jika skrip benar-benar terputus dari postgres, karena pernyataan yang disiapkan bersifat lokal untuk sesi induknya dan mati bersamanya.

Pembersihan eksplisit diperlukan saat menggunakan penggunaan kembali koneksi antar skrip, baik dengan koneksi persisten oleh PHP (pg_pconnect ), atau penyambung koneksi seperti pgBouncer (walaupun pooler itu sendiri mungkin memanggil DISCARD ALL tergantung pada konfigurasinya).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menonaktifkan sementara pemicu di PostgreSQL?

  2. BUAT EKSTENSI postgis gagal,

  3. Berapa banyak catatan yang dapat saya simpan dalam 5 MB PostgreSQL di Heroku?

  4. Cara menggunakan gabungan dalam dengan subkueri di Laravel Eloquent

  5. Bagaimana cara menggunakan fitur INSERT...ON CONFLICT (UPSERT) PostgreSQL dengan flask_sqlalchemy?