Как мне ИЗМЕНИТЬ таблицу PostgreSQL и сделать столбец уникальным?

У меня есть таблица в PostgreSQL, где схема выглядит так:

CREATE TABLE "foo_table" (
    "id" serial NOT NULL PRIMARY KEY,
    "permalink" varchar(200) NOT NULL,
    "text" varchar(512) NOT NULL,
    "timestamp" timestamp with time zone NOT NULL
)

Теперь я хочу сделать постоянную ссылку уникальной для всей таблицы, изменив таблицу. Кто-нибудь может мне с этим помочь?

TIA

create unique index on foo_table (permalink)
a_horse_with_no_name 20.10.2014 21:48
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
197
1
138 899
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я понял это из документов PostgreSQL, точный синтаксис:

ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (thecolumn);

Спасибо Фред.

Или попросите БД автоматически назначить имя ограничения, используя:

ALTER TABLE foo ADD UNIQUE (thecolumn);

Если вы это сделаете, postgres создаст ограничение, но имя будет «автоматически» присвоить слово «добавить». Я только что попробовал

Santi 17.01.2020 02:44

Когда я использую приведенный выше синтаксис, Postgress создает новое ограничение с именем mytable_mycolumn_key, меня это вполне устраивает :-)

Adam 06.07.2020 14:11

также возможно создать уникальное ограничение из более чем 1 столбца:

ALTER TABLE the_table 
    ADD CONSTRAINT constraint_name UNIQUE (column1, column2);

Это не работает для чего-то вроде: ALTER TABLE actions ADD CONSTRAINT actions_unique_constraint UNIQUE (payload::text, name); или ALTER TABLE actions ADD CONSTRAINT actions_unique_constraint UNIQUE ((payload::text), name);

writofmandamus 07.10.2017 01:22

Другие вопросы по теме