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

Вмъкнете множество ENUM стойности в PostgreSQL

Можете да използвате CREATE TYPE за да декларирате вашето enum:

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

И използвайте масив от него за съхраняване на стойностите:

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

За да вмъкнете:

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

Или

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

Друг подход би бил използването на друга таблица за съхраняване на enum и външен ключ към таблицата foo. Пример:

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

И те вмъкват множеството стойности в 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. Свържете приложението iPhone към PostgreSQL с помощта на Libpq

  2. Грешка при свързване към postgresql с помощта на sqlalchemy

  3. PGError:ГРЕШКА:разрешение е отказано за връзка (при използване на Heroku)

  4. Как да зададете стойност на полето за съставна променлива с помощта на динамичен SQL

  5. Как да получите връщащ се ID в JPA след вмъкване на собствена заявка