본문 바로가기
SQL/MySQL

MySQL 테이블 제약조건 조회 추가 삭제 변경방법 정리

by wakestand 2021. 1. 7.
반응형

MySQL에서 제약조건은

DESC 스키마명.테이블명;

으로 조회가 가능한데

여기서 제약조건 추가 및 변경방법은 다음과 같다

 

-- 제약조건 확인
DESC 스키마명.테이블명;
-- PK
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY(NAME);
-- FK
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 FOREIGN KEY(컬럼명)
 REFERENCES PK테이블명(PK컬럼명) (ON DELETE CASCADE / ON UPDATE CASCADE);
-- NOT NULL
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 데이터타입(크기) NOT NULL;
-- UNIQUE
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 UNIQUE(NAME);
-- B(Binary)
ALTER TABLE 테이블명 CHANGE 컬럼명 데이터타입(크기) BINARY;
-- UN(Unsigned Data type)
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입(크기) UNSIGNED;
-- ZF(Zero Filled)
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입(크기) ZEROFILL;
-- AI(Auto Increment) 
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입(크기) AUTO_INCREMENT
-- G(Generated Column)
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 데이터타입(크기) GENERATED ALWAYS AS (NAME + 'A') STORED;
-- Default
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입(크기) default '값';

 

다음으로 테이블, 컬럼 제약조건 초기화 방법인데

 

-- 테이블 제약조건 초기화
ALTER TABLE 테이블명 DROP INDEX 제약조건명;
-- 컬럼 제약조건 초기화
ALTER TABLE 테이블명 CHANGE COLUMN NAME 컬럼명 데이터타입(크기) NULL;

 

보면 쿼리가 좀 길고 복잡하지만 

MySQL 설치 시에 기본적으로 Workbench를 제공하기 때문에

위와 같은 쿼리를 굳이 쓸 필요가 없다

 

변경하려는 테이블 우클릭 후 > Alter Table을 눌러주자

 

눌러보니 테이블과 컬럼 제약조건이 쭉 나오는데

간단히 체크박스를 누르는 것만으로 변경이 가능하고

 

여기서 하단의 Indexes, Foreign Keys를 변경해주면

테이블 제약조건과 외래 키도 간단히 변경이 가능하다

(제약조건 우클릭 후 삭제)

마지막으로 원하는 대로 변경 후 우측 하단의 Apply를 눌러주면

(해당 스크린샷에는 길어서 없음)

 

위와 같은 창이 뜨면서 Apply 한번 눌러주면

쿼리를 자동으로 입력한 뒤 수행하므로

굳이 제약조건 바꾸자고 직접 쿼리를 쓸 필요가 없다

반응형

댓글