[sql] PostgreSQL에서 두 열의 조합에서 고유 한 힘
PostgreSQL에서 두 열이 고유해야하도록 테이블을 설정하고 싶습니다. 두 값을 공유하는 두 개가없는 한 두 값 중 여러 값이있을 수 있습니다.
예를 들어 :
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
그래서, col1
그리고 col2
하지만 동시에, 반복 할 수 있습니다. 따라서 이것은 허용됩니다 (ID는 포함하지 않음)
1 1
1 2
2 1
2 2
그러나 이것은 아닙니다 :
1 1
1 2
1 1 -- would reject this insert for violating constraints
답변
CREATE TABLE someTable (
id serial primary key,
col1 int NOT NULL,
col2 int NOT NULL,
unique (col1, col2)
)
autoincrement
postgresql이 아닙니다. 당신은 원합니다 serial
.
col1과 col2가 고유하고 널이 될 수 없으면 좋은 기본 키를 만듭니다.
CREATE TABLE someTable (
col1 int NOT NULL,
col2 int NOT NULL,
primary key (col1, col2)
)
답변
두 숫자를 함께 반복 할 수 없다는 고유 제한 조건을 작성하십시오.
ALTER TABLE someTable
ADD UNIQUE (col1, col2)
답변
일반 UNIQUE CONSTRAINT와 같은 것 같습니다 🙂
CREATE TABLE example (
a integer,
b integer,
c integer,
UNIQUE (a, c));
여기 더