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
반응형
'Database > mysql' 카테고리의 다른 글
[MYSQL / Database] 프로시저 (Procedure) (0) | 2023.04.13 |
---|---|
[MYSQL /Database] Foreign key 구성 동작 방식 (0) | 2023.04.13 |
[MYSQL / Database] 제약조건 적용해보기( NOT NULL, UNIQUE, DEFAULT, CHECK, PRIMARY KEY,FOREIGN KEY) (0) | 2023.04.13 |
댓글