PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wstaw wiele wartości ENUM w PostgreSQL

Możesz użyć CREATE TYPE zadeklarować swoje wyliczenie:

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

I użyj tablicy z tego do przechowywania wartości:

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

Aby wstawić:

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

Lub

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

Innym podejściem byłoby użycie innej tabeli do przechowywania wyliczeń i klucza obcego do tabeli foo. Przykład:

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

I wstawiają wiele wartości do 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. alternatywa dla indeksu bitmapowego w postgresql

  2. Zapytanie złożone OR SQL (zapytanie nr 1 z opcją Z) i (zapytanie nr 2) z wyjątkami LICZBA()

  3. PostgreSQL - jak sprawdzić czy transakcja jest aktywna?

  4. ON DELETE SET NULL w postgresie

  5. Zmodyfikuj wartość początkową AutoField Django