반응형
Column에 default 제약 조건을 설정하면, 레코드를 입력할 때 해당 필드에 값을 생략해도 dafault로 설정한 기본값으로 넣어주는 제약조건입니다.
Default 제약조건 개념
- column에 제약조건을 이용하여 기본값을 설정하는 방법입니다.
- 그럼 이후 데이터를 추가할 때 해당 column에 값을 지정하지 않아도 기본값이 자동으로 채워집니다.
- 예를 들어, 여자고등학교에서 학사 관련 테이블에 성별을 넣는 column의 default는 여성으로 설정할 수 있습니다.
Default 제약조건 생성 방법
테이블 생성하면서 column에 Default 제약조건 설정.
예시코드.
CREATE TABLE [테이블명] (
[column1] [dataType],
[column1] [dataType] DEFAULT '기본값',
[column3] [dataType],
);
USE sampleDB;
DROP TABLE IF EXISTS womanSchool;
CREATE TABLE womanSchool (
ID int NOT NULL,
LastName varchar(255),
FirstName varchar(255),
GenderClass varchar(10) default 'woman'
);
-- 확인 소스.
insert into womanSchool(ID,LastName,FirstName)
values(202401,'john','hub');
SELECT *
FROM womanSchool with(nolock);
테이블 생성 후 Default 제약조건 생성.
예시코드.
ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] DEFAULT ('기본값') FOR [column name];
USE sampleDB;
DROP TABLE IF EXISTS womanSchool;
CREATE TABLE womanSchool (
ID int NOT NULL,
GenderClass varchar(10)
);
ALTER TABLE [womanSchool]
ADD CONSTRAINT [df_womanSchool_GenderClass] DEFAULT ('woman') FOR [GenderClass];
신규 column을 추가 시 Default 제약조건 설정.
Default 제약조건 이름이 자동으로 생성돼서 나중에 관리가 안 되는 경우 있습니다.
column 생성 후 dafault 설정해 주는 것을 추천합니다.
예시코드.
ALTER TABLE [테이블명] ADD [column1] [dataType] DEFAULT [기본값];
USE sampleDB;
DROP TABLE IF EXISTS womanSchool;
CREATE TABLE womanSchool (
ID int NOT NULL
);
ALTER TABLE [womanSchool] ADD GenderClass varchar(10) DEFAULT 'woman';
-- 확인 소스.
insert into womanSchool(ID)
values(202401);
SELECT *
FROM womanSchool with(nolock);
Default 제약조건 확인
명령어 예시 코드.
EXEC SP_HELP [테이블명];
EXEC SP_HELP womanSchool;
스키마를 이용하여 제약조건 확인.
Default 제약조건 소스코드 확인.
select schema_name(t.schema_id) + '.' + t.[name] as table_nm
,col.[name] as column_nm
,con.[name] as constraint_nm
,con.[definition] as df_value
from sys.default_constraints con
left outer join sys.objects t
on con.parent_object_id = t.object_id
left outer join sys.all_columns col
on con.parent_column_id = col.column_id
and con.parent_object_id = col.object_id
order by con.name;
Default 제약조건 이름으로 삭제
Default 제약조건 예시코드
ALTER TABLE [테이블명] DROP CONSTRAINT [제약조건명];
ALTER TABLE womanSchool DROP df_womanSchool_GenderClass;
반응형