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

Tuple diperbarui secara bersamaan saat membuat fungsi di postgresql / PL/pgSQL

Seperti yang dijelaskan di sini , postgres saat ini tidak mengizinkan Anda menggunakan CREATE FUNCTION bersamaan:

Solusi untuk ini adalah memastikan bahwa tidak ada dua transaksi yang mencoba melakukan CREATE FUNCTION pada saat yang sama.

Anda dapat menggunakan kunci saran posgres untuk itu.

Pengantar yang baik untuk kunci penasihat dapat ditemukan di sini:https://vladmihalcea .com/how-do-postgresql-advisory-locks-work/

Misalnya, Anda dapat menggunakan:

BEGIN; -- start of transaction

SELECT pg_advisory_xact_lock(2142616474639426746); -- random 64-bit signed ('bigint') lock number

CREATE OR REPLACE FUNCTION myfunction ...

COMMIT;

Ini membutuhkan kunci penasihat eksklusif tingkat transaksi, sehingga tidak ada dua transaksi bersamaan yang dapat menjalankan fungsi tersebut pada saat yang sama. Di akhir transaksi, kunci akan dilepas secara otomatis.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql, ambil nilai untuk kunci tertentu dari json array

  2. Kesalahan postgres saat memasukkan - KESALAHAN:urutan byte tidak valid untuk penyandian UTF8:0x00

  3. Daftar jumlah nilai duplikat

  4. Bagaimana cara saya menulis kueri Django yang melakukan matematika tanggal ketika dieksekusi sebagai PostGres SQL?

  5. Casting tipe NULL saat memperbarui beberapa baris