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

Melakukan transaksi saat menjalankan Fungsi postgreql

Ini dapat dilakukan dengan menggunakan dblink. Saya menunjukkan contoh dengan satu sisipan yang dikomit, Anda perlu menambahkan logika loop while Anda dan komit setiap loop. Anda dapat http://www.postgresql.org/docs/9.3/static/contrib-dblink-connect.html

CREATE OR REPLACE FUNCTION log_the_dancing(ip_dance_entry text)
RETURNS INT AS
$BODY$
    DECLARE
    BEGIN
        PERFORM dblink_connect('dblink_trans','dbname=sandbox port=5433 user=postgres');
        PERFORM dblink('dblink_trans','INSERT INTO dance_log(dance_entry) SELECT ' || '''' || ip_dance_entry || '''');
        PERFORM dblink('dblink_trans','COMMIT;');
        PERFORM dblink_disconnect('dblink_trans'); 

        RETURN 0;
    END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

ALTER FUNCTION log_the_dancing(ip_dance_entry text)
  OWNER TO postgres;

BEGIN TRANSACTION;
  select log_the_dancing('The Flamingo');
  select log_the_dancing('Break Dance');
  select log_the_dancing('Cha Cha');
ROLLBACK TRANSACTION;

--Show records committed even though we rolled back outer transaction
select *
from dance_log;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UPPER() – Konversikan ke Huruf Besar di PostgreSQL

  2. Lewati beberapa nilai dalam parameter tunggal

  3. Query PostgreSQL dengan Npgsql dan Entity Framework menggunakan unaccent

  4. Bagaimana saya bisa menggunakan kueri dengan placeholder di dalam tanda kutip? (perl/postgresql)

  5. Tambahkan kolom stempel waktu dengan default SEKARANG () hanya untuk baris baru