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

Chèn nhiều giá trị ENUM trong PostgreSQL

Bạn có thể sử dụng CREATE TYPE để khai báo enum của bạn:

CREATE TYPE tfoo AS ENUM('foo','bar','dummy');

Và sử dụng mảng của nó để lưu trữ các giá trị:

CREATE TABLE foo (foo_id serial, foo_enum tfoo[]);

Để chèn:

INSERT INTO foo(foo_enum) VALUES('{foo,bar}');

Hoặc

INSERT INTO foo(foo_enum) VALUES(ARRAY['foo','bar']::tfoo[]);

Một cách tiếp cận khác sẽ là sử dụng một bảng khác để lưu trữ các enum và một khóa ngoại vào bảng foo. Ví dụ:

CREATE TABLE foo (foo_id serial primary key);
CREATE TABLE foo_enums (foo_id integer references foo(foo_id), value tfoo);

Và chúng chèn nhiều giá trị vào foo_enums :

INSERT INTO foo(foo_id) VALUES(nextval('foo_id_seq'));
INSERT INTO foo_enums(foo_id, value) VALUES
    (currval('foo_id_seq'), 'foo'),
    (currval('foo_id_seq'), 'bar');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truyền tham số sang DB .execute cho danh sách WHERE IN ... INT

  2. Thứ tự cập nhật cơ sở dữ liệu

  3. phiên bản pg_dump không khớp trong Rails

  4. Phát triển PostgreSQL cho Windows, Phần 3

  5. Trigger so với JPA @PrePersist để tạo và cập nhật ưu và nhược điểm của dấu thời gian