В Postgresql сила уникальна для комбинации двух столбцов
Я хотел бы настроить таблицу в postgresql таким образом, что два столбца вместе должны быть уникальными. Там может быть несколько значений любого значения, пока нет двух, которые разделяют оба.
например:
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
и col1 и col2 можно повторить, но не в то же время. Таким образом, это будет разрешено (не включая идентификатор)
1 1
1 2
2 1
2 2
но не этот:
1 1
1 2
1 1 -- would reject this insert for violating constraints
3 ответов:
CREATE TABLE someTable ( id serial primary key, col1 int NOT NULL, col2 int NOT NULL, unique (col1, col2) )
autoincrementне является postgresql. Вы хотитеserial.если col1 и col2 делают уникальный и не может быть null, то они делают хороший первичный ключ:
CREATE TABLE someTable ( col1 int NOT NULL, col2 int NOT NULL, primary key (col1, col2) )
создать уникальное ограничение, что два числа вместе не могут быть повторены:
ALTER TABLE someTable ADD UNIQUE (col1, col2)
похоже на обычное уникальное ограничение :)
CREATE TABLE example ( a integer, b integer, c integer, UNIQUE (a, c));больше здесь
Comments