본문 바로가기
Database/mysql

[MYSQL / Database] 제약조건 설정 방식

by JINJINC 2023. 4. 13.
728x90
반응형

 컬럼 레벨 방식

create table t1( 
    id int primary key, 
    name varchar(30) not null, 
    addr varchar(30) unique,
    job varchar(30) references t2(job)
);

 

 테이블 레벨 방식

create table t1( 
    id int,
    name varchar(30) not null, 
    addr varchar(30),
    job varchar(30),
    primary key(id), unique(addr), foreigh key(job) references t2(job)
);

 

제약조건 설정시 테이블 레벨 방식만 가능한 경우

. 기본키를 복합키로 설정하는 경우 : 2개 이상의 칼럼을 기본키로 설정하는 경우
. alter table로 제약조건을 추가할 경우

create table t1(id int primary key, age int primary key); -- 잘못된 문법

create table t1(id int, age int, primary key(id,age));

insert into t1 values(1,1);
insert into t1 values(1,2);
insert into t1 values(1,1); -- 실패 
insert into t1 values(1,2); -- 실패
insert into t1 values(1,4); -- 성공
=> id, age 둘다 일치할대 인식되어 유일성에 위배되지만 
둘중 하나라도 다르면 유일성을 가진다.

 

728x90
반응형

댓글