У меня есть таблица в 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


Я понял это из документов PostgreSQL, точный синтаксис:
ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (thecolumn);
Спасибо Фред.
Или попросите БД автоматически назначить имя ограничения, используя:
ALTER TABLE foo ADD UNIQUE (thecolumn);
Если вы это сделаете, postgres создаст ограничение, но имя будет «автоматически» присвоить слово «добавить». Я только что попробовал
Когда я использую приведенный выше синтаксис, Postgress создает новое ограничение с именем mytable_mycolumn_key, меня это вполне устраивает :-)
также возможно создать уникальное ограничение из более чем 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);
create unique index on foo_table (permalink)