Database/mysql

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

JINJINC 2023. 4. 13. 14:07
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
반응형