2017-04-11 5 views

답변

2

바퀴벌레는 현재 이러한 제약 조건을 기존 테이블에 추가하는 것을 허용하지 않습니다.

한 가지 해결 방법은 사용할 스키마 (NOT NULL 제약 조건 포함)를 사용하여 새 테이블을 만든 다음 INSERT...SELECT을 사용하여 데이터를 새 테이블로 마이그레이션하는 것입니다.

CREATE TABLE tbl2 (id INT PRIMARY KEY, col_a INT NOT NULL); 
INSERT INTO tbl2 SELECT * FROM tbl1; 

tbl1이 같은 유형의 동일한 수의 열을 가지고 col_a의 그 버전에서 어떤 NULL 값이 없음을 가정합니다

다음은 예입니다.

이 단점은 테이블 데이터에 모두을 복사해야하므로 큰 테이블에서는 이상적이지 않습니다.

다른 해결 방법은, 기존의 열에서 값을 설정하는 UPDATE를 사용 후, (그것도 DEFAULT을 필요로 의미 있음) NOT NULL 제약 조건, 새 열을 추가 새 열 이름을 변경하고 드롭하는 것 오래된 것.

관련 문제