PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tạo mảng postgres miền tùy chỉnh

Một giải pháp khả thi khác là:

CREATE TYPE foo_tup AS (item foo);

Các loại miền có thể được bao bọc trong các bộ giá trị như thế này và điều đó cung cấp cho bạn một phương thức khởi tạo mảng. Nhược điểm là bây giờ bạn có thể muốn tạo phôi:

select array[row('foo')::foo_tup, row('bar')];

Ví dụ:bạn có thể tạo một hàm và một diễn viên:

create function foo_tup(foo) returns foo_tup language sql as $$
    select row($1)::foo_tup;
$$ immutable;
create function foo(foo_tup) returns foo language sql as $$
     select $1.item;
$$;
create cast (foo as foo_tup) with function foo_tup(foo);
create cast (foo_tup as foo) with function foo(foo_tup);

Sau đó, việc tổng hợp trở nên dễ dàng:

select array_agg(myfoo::foo_tup) from my_table; 

mặc dù bạn có thêm dấu ngoặc đơn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CommandError:Có vẻ như bạn chưa cài đặt chương trình 'psql' hoặc trên đường dẫn của bạn

  2. Triển khai &Cấu hình PostgreSQL với Con rối

  3. ClassCastException:Không thể truyền số nguyên thành Long, trong khi cố gắng lặp lại qua các ID thực thể

  4. Nhóm theo khoảng dữ liệu

  5. Chèn số dấu phẩy động vào bảng bằng libpq