MySQL 에러처리 (ERROR 1067 (42000): Invalid default value for 'no' )

회사 계정서버에 올라가 있는 한 홈페이지의 제로보드에서, 게시판을 실수로 지워 새로 추가해달라는 연락이 왔습니다.
어려운 부탁이 아닌지라 관리자 계정으로 로그인 후, 제로보드 관리메뉴에서 게시판 추가를 했더니 테이블 생성 에러가 발생하더군요.
테이블 정보는 저장이 됐는데 게시판용 테이블들이 생성이 안돼 있었습니다.
제로보드 소스를 뒤져보니 schema.sql 파일에 각종 테이블 생성쿼리들을 저장해 두었더군요.
일단 복사해서 MySQL 에서 돌려보니 아래의 에러가 나면서 생성이 안되더군요.

ERROR 1067 (42000): Invalid default value for ‘no’

구글링결과 MySQL 5 버전부터는 컬럼에 auto_increment 이 걸려 있으면 default 값을 지정할 수 없다고 하더군요.
그래서  schema.sql 파일의 테이블 생성 쿼리들 중 auto_increment가 있는 컬럼의 default 옵션을 모두 삭제했더니, 제로보드 게시판이 이상없이 생성되었습니다.
참고로 구글링 도중 MySQL 테이블 복사 쿼리가 보여서 남겨둡니다.

  • 테이블의 구조만 복사

CREATE TABLE targetTableName LIKE sourceTableName;

  • 테이블의 내용까지 복사

CREATE TABLE targetTableName AS SELECT * FROM sourceTableName;

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

*