본문 바로가기

mySQL

[mySQL]컬럼 추가삭제, 외래키 지정/삭제, 제약조건확인

반응형

 

CREATE TABLE ids_info(
    GTIN_13 varchar(14),
    PRIMARY KEY(order_id),
    FOREIGN KEY (product_id) REFERENCES products
);

외래키를 처음부터 이렇게 잘 만들어놨다면 상관없지만,

중간에 외래키를 추가/변경해야 할 때가 있다.

 

난 product_id를 외래키로 만들려고 한다.

난 위에처럼 컬럼조차 만들어놓지 않았다.

 

1. 컬럼 추가/삭제 방법

컬럼 추가 방법
alter table [테이블명] add [컬럼명] [타입];

컬럼 삭제 방법
alter table [테이블명] drop [컬럼명] [타입];

예시
>alter table ids_info add product_id int(100) not null;

not null을 까먹어서 다시 삭제하고 만들어주었다.

 

2. 외래키 지정 방법

이제 외래키로 지정해주어야 한다.

외래키 지정 방법
alter table [테이블명] add foreign key( [컬럼명] ) references [참조한 테이블]( [참조할 컬럼명] ) [옵션];

[]를 생략하고 넣고 싶은 값을 넣으면 된다.

마찬가지로 옵션에는 on delete cascade / on update cascade 을 넣을 수 있다.

update는 이 값이 바뀔 때마다 나도 갱신, delete는 참조하는 키가 삭제되면 나도 삭제. 로 이해하면 된다.

 

이걸 까먹었어서 또 외래키를 삭제해야 한다..

 

3. 외래키 삭제

외래키를 삭제하기 위해선, 제약조건을 확인해야 한다.

제약조건 확인 방법
select * from information_schema.table_constraints;
테이블명을 딱 정해서 보는 것을 추천
select * from information_schema.table_constraints where table_name = '테이블명';

난 아까 잘못해서 ids_info_ibfk_1, 2 제약조건이 이렇게 2개임을 확인할 수 있다.

외래키 삭제

alter table [테이블명] drop foreign key [확인한 제약조건명];

외래키로 삭제해서 컬럼도 잘 삭제됨을 확인할 수 있다.

 

 

마지막 옵션까지 잘 줘서 추가한 외래키....

반응형