PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да създам дефинирана от потребителя функция в AWS Aurora RDS Postgres

Сблъскахме се със същия проблем и се свързахме с AWS, който потвърди, че наистина е проблем с инструмента Query Editor. Те нямат ETA кога проблемът ще бъде отстранен.

Решение 1:Използвайте psql

Добрата новина е, че това ще работи с psql . Това е фрагмент от техния имейл за отговор:

$ 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

Документация как да го настроите:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html

Решение 2:Използвайте API за данни

Вече използваме API за данни за комуникация с нашия клъстер, така че за нас най-простото решение всъщност е използването на AWS CLI и съществуващата тайна на базата данни.

Можете да поставите вашата дефиниция на функция в function.sql файл:

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

След това го изпълнете в базата данни с:

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

Надяваме се, че това е полезно, успех!




  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 на OSX за разработка на Rails

  2. Как да включите нулеви стойности в заявка `tablefunc` в postgresql?

  3. Как да конвертирате postgres json в цяло число

  4. MemoryError при използване на метода read() при четене на JSON файл с голям размер от Amazon S3

  5. Как pgBouncer помага за ускоряване на Django