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

PostgreSQL - bagaimana menjalankan VACUUM dari kode di luar blok transaksi?

Setelah pencarian lebih lanjut, saya telah menemukan properti isolasi_level dari objek koneksi psycopg2. Ternyata mengubah ini menjadi 0 akan mengeluarkan Anda dari blok transaksi. Mengubah metode vakum dari kelas di atas ke yang berikut menyelesaikannya. Perhatikan bahwa saya juga mengatur kembali tingkat isolasi ke tingkat sebelumnya untuk berjaga-jaga (tampaknya 1 secara default).

def vacuum(self):
    old_isolation_level = self.conn.isolation_level
    self.conn.set_isolation_level(0)
    query = "VACUUM FULL"
    self._doQuery(query)
    self.conn.set_isolation_level(old_isolation_level)

Artikel ini (di dekat akhir halaman itu) memberikan penjelasan singkat tentang tingkat isolasi dalam konteks ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Saya terus mendapatkan hubungan kesalahan [TABLE] tidak ada

  2. Tidak dapat menemukan titik masuk bernama 'InterlockedIncrement' di DLL 'kernel32.dll' - [dilindungi email] 64 bit

  3. Bagaimana cara membuat tabel pohon tanpa hubungan siklik?

  4. Rancang Peran Admin:PG::Error:ERROR:admin relasi sudah ada

  5. KESALAHAN:fungsi unnest(integer[]) tidak ada di postgresql