[TIL] 25.01.27 MON

GDORI·2025년 1월 27일
0

TIL

목록 보기
172/184
post-thumbnail

MYSQL 컬럼 추가할 때

작업을 하다보니 테이블 변경이 필요했고,NOT NULL 컬럼을 추가할 때, 기존 데이터에 대해서는 기본값을 설정해야 한다. 그렇지 않으면 에러가 발생하기 때문이다.

NOT NULL 컬럼 추가하기

기본 값 추가하여 컬럼 추가

기존 데이터에 대해서 기본값을 설정하려면 DEFAULT 값을 지정해야 한다. 이렇게 하면 기존 레코드들이 새로운 컬럼을 DEFAULT 값으로 채워지기 때문에 에러 없이 추가할 수 있다.

ALTER TABLE problems
ADD COLUMN type VARCHAR(50) NOT NULL DEFAULT 'a';
  • 이렇게 하면 problems 테이블에 새로운 type 컬럼이 추가되고, 기존 데이터의 type 값은 a로 설정된다.

기존 데이터에 값을 제공하여 컬럼 추가하기

기존 데이터가 NULL이 될 수 없으므로, 새로운 컬럼에 대한 값을 명시적으로 설정해야 한다. 이 경우, 기존 데이터에 값을 삽입하는 업데이트 쿼리를 작성해야 한다.

예를 들어, problems 테이블에 type 컬럼을 NOT NULL로 추가하려면 먼저 컬럼을 NULL 허용으로 추가하고, 그 다음에 값을 설정한 후에 NOT NULL로 변경할 수 있다.

-- 먼저 NULL 허용 컬럼 추가
ALTER TABLE problems ADD COLUMN type VARCHAR(50);

-- 기존 데이터에 값을 설정
UPDATE problems SET type = 'a' WHERE type IS NULL;

-- 그 후, NOT NULL 제약 추가
ALTER TABLE problems MODIFY COLUMN type VARCHAR(50) NOT NULL;

그냥 편하게.. 기본값 추가가 나은 것 같다.

profile
하루 최소 1시간이라도 공부하자..

0개의 댓글

관련 채용 정보