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

INSERT dan serialisasi transaksi di PostreSQL

Umumnya, tidak. Transaksi kedua hanya memasukkan, jadi kecuali ada pemeriksaan indeks unik atau pemicu lain yang perlu dilakukan, data dapat dimasukkan tanpa syarat. Dalam kasus indeks unik (termasuk kunci utama), itu akan memblokir jika kedua transaksi memperbarui baris dengan nilai yang sama, misalnya:

-- Session 1                           -- Session 2
CREATE TABLE t (x INT PRIMARY KEY);
BEGIN;
INSERT INTO t VALUES (1);
                                       BEGIN;
                                       INSERT INTO t VALUES (1);  -- blocks here
COMMIT;
                                       -- finally completes with duplicate key error

Hal-hal yang kurang jelas dalam kasus pembaruan yang dapat mempengaruhi penyisipan oleh transaksi lain. Saya mengerti PostgreSQL belum mendukung serialisability "benar" dalam kasus ini. Saya tidak tahu seberapa umumnya didukung oleh sistem SQL lainnya.

Lihat http://www.postgresql.org/docs/current/interactive/ mvcc.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UnknownHostException ketika mencoba terhubung ke heroku-postgres dari proyek Springboot lokal dengan Spring JPA

  2. tidak ada entri pg_hba.conf untuk host

  3. Dapatkan Kesalahan:Anda harus menginstal setidaknya satu paket postgresql-client-<version> saat digunakan ke heroku

  4. Perbarui catatan yang memenuhi kondisi dengan angka yang bertambah

  5. PostgreSQL tidak dapat terhubung:definisi layanan tidak ditemukan