반응형
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 한번 눌러주면
쿼리를 자동으로 입력한 뒤 수행하므로
굳이 제약조건 바꾸자고 직접 쿼리를 쓸 필요가 없다
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL INNER LEFT RIGHT CROSS JOIN 사용방법 및 예제 (0) | 2021.01.08 |
---|---|
MySQL WITH 절 사용법 및 예제(가상 테이블) (1) | 2021.01.08 |
MySQL ON DUPLICATE KEY(MERGE INTO) 사용방법 (0) | 2021.01.08 |
MySQL 조회 삽입 변경 삭제방법 정리 (0) | 2021.01.07 |
MySQL 테이블 생성 및 제약조건 설정방법 정리 (0) | 2021.01.07 |
댓글