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

Bagaimana cara membuat fungsi yang ditentukan pengguna di AWS Aurora RDS Postgres

Kami mengalami masalah yang sama dan menghubungi AWS, yang mengonfirmasi bahwa memang ada masalah dengan alat Editor Kueri. Mereka tidak memiliki ETA kapan masalah akan diperbaiki.

Solusi 1:Gunakan psql

Kabar baiknya adalah ini akan bekerja dengan psql . Ini adalah cuplikan dari email balasan mereka:

$ psql -h database-2.cluster-xx.us-west-2.rds.amazonaws.com -d postgres -U postgres
postgres=> CREATE OR REPLACE FUNCTION trigger_set_updated_at() RETURNS TRIGGER AS $$
postgres$> BEGIN  NEW.updated_at = NOW();  
postgres$> RETURN NEW;END;$$ 
postgres-> LANGUAGE plpgsql;
CREATE FUNCTION

Dokumentasi tentang cara menyiapkannya:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html

Solusi 2:Gunakan API Data

Kami sudah menggunakan API Data untuk berkomunikasi dengan cluster kami, jadi bagi kami solusi paling sederhana sebenarnya adalah menggunakan AWS CLI dan rahasia database yang ada.

Anda dapat meletakkan definisi fungsi Anda di function.sql berkas:

CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
    BEGIN
        RETURN i + 1;
    END;
$$ LANGUAGE plpgsql;

Kemudian jalankan di database dengan:

cat function.sql | xargs -0 aws rds-data execute-statement \
    --resource-arn arn:aws:rds:eu-west-1:xxx:cluster:cluster-name \
    --secret-arn arn:aws:secretsmanager:eu-west-1:xxx:secret:secret-name-xxx \
    --database "database_name" \
    --sql

Semoga bermanfaat, selamat mencoba!




  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 saya bisa mengubah Nama Database di AWS RDS untuk Postgresql?

  2. Postgres mengubah urutan secara manual

  3. JDBC:Dapatkah saya berbagi koneksi di aplikasi multithreading, dan menikmati transaksi yang menyenangkan?

  4. Kunci Utama Komposit PostgreSQL dan Peningkatan Serial?

  5. Dapatkan nilai serial default setelah INSERT di dalam PL/pgSQL