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

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

Можете да използвате алтернативния синтаксис с литерал на масив вместо конструктора на масива, който е конструкция, подобна на функцията на Postgres и може да причини проблеми, когато трябва да предадете стойности - като в подготвено изявление:

SELECT myschema.myfunc('0d6311cc-0d74-4a32-8cf9-87835651e1ee'
                  , '{"(0d6311cc-0d74-4a32-8cf9-87835651e1ee, 25)"
                    , "(6449fb3b-844e-440e-8973-31eb6bbefc81, 10)"}'::mytype[]);

Добавих прекъсване на ред между двата типа редове в масива за показване. Това е законно.

Как да намеря правилния синтаксис за всяко буквално?

Просто попитайте Postgres. Ето демонстрация:

CREATE TABLE mytype (id uuid, amount numeric(13,4));

INSERT INTO mytype VALUES
  ('0d6311cc-0d74-4a32-8cf9-87835651e1ee', 25)
 ,('6449fb3b-844e-440e-8973-31eb6bbefc81', 10);

SELECT ARRAY(SELECT m FROM mytype m);

Връща:

{"(0d6311cc-0d74-4a32-8cf9-87835651e1ee,25.0000)","(6449fb3b-844e-440e-8973-31eb6bbefc81,10.0000)"}

db<>цигулка тук

Всяка таблица (включително временни таблици) имплицитно създава тип ред със същото име.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ред за връщане на SQL ред

  2. Връщане на списък с часови зони, поддържани от PostgreSQL

  3. Извикване на функция на PostgreSQL

  4. ScaleGrid PostgreSQL на VMware Cloud Infrastructure

  5. Неправилно сортиране/съпоставяне/подреждане с интервали в Postgresql 9.4