-- 기존 제약 조건 삭제 (만약 존재한다면)
ALTER TABLE your_table DROP CONSTRAINT your_table_pkey;
-- 새로운 제약 조건 추가
ALTER TABLE your_table
ADD CONSTRAINT your_table_pkey PRIMARY KEY (new_column1, new_column2);
ALTER COLUMN 문은 열의 속성을 수정할 때 사용됩니다. 주로 열의 데이터 타입, NULL 제약 조건, 기본값 등을 변경하는 데에 쓰입니다.
제약 조건을 추가하거나 제거할 때에는 **ALTER TABLE**을 활용합니다.
제약조건중에서도 notnull 이나 default같은 경우는 alter column쓴다.
ALTER COLUMN your_column SET DEFAULT your_default_value;
ALTER COLUMN your_column SET NOT NULL;
ALTER COLUMN your_column DROP DEFAULT;
PRIMARY KEY:
PRIMARY KEY (column1, column2, ...)**와 같은 형태로 정의됩니다.UNIQUE:
UNIQUE (column1, column2, ...)**와 같은 형태로 정의됩니다.NOT NULL:
column_name NOT NULL**과 같은 형태로 정의됩니다.CHECK:
CHECK (condition)**과 같은 형태로 정의됩니다.create table contacts (
---- columns ----
id uuid default uuid_generate_v4(),
-- 이렇게 대신 써도 된다.
id uuid default uuid_generate_v4() primary key,
first_name not null text,
last_name not null text,
---- constraints ----
primary key (id)
check (
first_name !~ '\\s'
and last_name !~ '\\s'
)
);
FOREIGN KEY:
FOREIGN KEY (column) REFERENCES other_table (other_column)**와 같은 형태로 정의됩니다.EXCLUSION:
내장 타입.
INTEGER ⇒ 소수점없음
NUMERIC, DECIMAL(10,2) ⇒ 고정 소수점
FLOAT, DOUBLE PRECISION ⇒ 부동 소수점
소수점 이하 자릿수가 많아질수록 부동 소수점의 정밀도는 감소합니다. 따라서 금융과 같이 정확한 정밀도가 필요한 경우에는 DECIMAL 또는 NUMERIC 데이터 타입을 고려하는 것이 좋습니다.