squadbrodyaga
@squadbrodyaga
帆は風を変えた

Как задать свой тип?

Как задать свой тип для колонки, например:
create table video (
  id integer ...,
  type вот здесь мне нужно указать, что type может быть только "FILM" или "SERIAL"
);

Как мне это сделать?
  • Вопрос задан
  • 118 просмотров
Решения вопроса 3
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Создайте его
https://www.postgresql.org/docs/current/sql-create...
используйте
CREATE TYPE contenttype AS ENUM ('FILM', 'SERIAL', 'TRAILER');


https://www.postgresql.org/docs/current/datatype-e...
Ответ написан
Комментировать
ScriptKiddo
@ScriptKiddo
https://postgrespro.ru/docs/postgrespro/15/datatyp...

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TABLE person (
    name text,
    current_mood mood
);
INSERT INTO person VALUES ('Moe', 'happy');
SELECT * FROM person WHERE current_mood = 'happy';
 name | current_mood 
------+--------------
 Moe  | happy
(1 row)
Ответ написан
Комментировать
@Akina
Сетевой и системный админ, SQL-программист.
Можно использовать ENUM, как уже предложили.

Можно просто добавить ограничение (CHECK constraint) - тогда любое не соответствующее ограничению значение приведёт к ошибке вставки/обновления:

CREATE TABLE video (
  id INTEGER,
   ...,
  type VARCHAR CHECK (type IN ('FILM', 'SERIAL')),
  ...
);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы