반응형
PostgreSQL: 기본 제약 조건 이름
Postgre에서 테이블을 작성할 때SQL. 제공되지 않은 경우 기본 제약 조건 이름이 할당됩니다.
CREATE TABLE example (
a integer,
b integer,
UNIQUE (a, b)
);
하지만 사용하기ALTER TABLE
제약 조건을 추가하려면 이름이 필수인 것 같습니다.
ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b);
이로 인해 내가 작업한 프로젝트에서 이름 지정이 일치하지 않으며 다음과 같은 질문이 표시됩니다.
테이블 작성 중에 추가된 경우 받은 이름으로 기존 테이블에 제약 조건을 추가하는 간단한 방법이 있습니까?
그렇지 않은 경우 불일치를 방지하기 위해 기본 이름을 모두 사용하지 않아야 합니까?
Postgre의 인덱스에 대한 표준 이름SQL은 다음과 같습니다.
{tablename}_{columnname(s)}_{suffix}
여기서 접미사는 다음 중 하나입니다.
pkey
기본 키 제약 조건의 경우key
고유 제약 조건의 경우excl
제외 제약 조건의 경우idx
다른 종류의 지수에 대하여.fkey
외국 열쇠로.check
체크 제약 조건의 경우
시퀀스의 표준 접미사는 다음과 같습니다.
seq
모든 순서에 대하여
고유 제약 조건의 증거:
주의: CREATE TABLE/UNIKE는 테이블 "example"에 대한 암시적 인덱스 "example_a_b_key"를 생성합니다.
설명서는 이에 대해 매우 명확합니다("테이블 제약 조건: 이 양식은 CREATE TABLE과 동일한 구문을 사용하여 테이블에 새 제약 조건을 추가합니다.")
따라서 다음을 간단히 실행할 수 있습니다.
ALTER TABLE 예제 고유 추가(a, b);
언급URL : https://stackoverflow.com/questions/4107915/postgresql-default-constraint-names
반응형
'programing' 카테고리의 다른 글
Python 요청에 대한 서버 응답 시간 측정 방법 POST-request (0) | 2023.05.06 |
---|---|
Git에서 전자 메일 주소 변경 (0) | 2023.05.06 |
Git에서 가장 최신 버전으로 돌아가는 방법은 무엇입니까? (0) | 2023.05.01 |
Git: 원격 분기를 로컬로 병합합니다. (0) | 2023.05.01 |
Postgres 사용자가 존재하지 않습니까? (0) | 2023.05.01 |