mysql 버전은 5.1버전을 사용중인것 같습니다.
엔진은 InnoDB 사용중이구요.
문제가
reg_date_tran timestamp DEFAULT '0000-00-00 00:00:00' NOT NULL,
reg_date timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
테이블을 만들때 위처럼 넣으려고 하면
Invalid default value for 'reg_date_tran' 이러한 오류가 발생합니다..
타임스탬프에 관련된 이유같은데 정확히 어떤 이유 때문에 오류가 발생하는지 인지하지 못해서 진행을 못하고 있습니다.. 꼭 이유와 해결법을 알고 넘어가고 싶습니다 도와주세요 ㅜㅜ
00월00일 자체가 날자값에 틀린것 아닌가요?
1970-01-01 00:00:00 이렇게 바꿔도 안되더라구요 ..
저는 보여주신 문장 5.0버전에서 테스트 해봤는데 되네요.
아래 링크보면 sql_mode 설정에 따라서 그럴수 있다고 합니다.
https://stackoverflow.com/questions/9192027/invalid-default-value-for-create-date-timestamp-field
mysql> create table t1 (
-> reg_date_tran timestamp DEFAULT '0000-00-00 00:00:00' NOT NULL,
-> reg_date timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL)
-> ;
Query OK, 0 rows affected (0.04 sec)
mysql> SET SQL_MODE='NO_ZERO_DATE';
Query OK, 0 rows affected (0.00 sec)
mysql> drop table t1;
Query OK, 0 rows affected (0.02 sec)
mysql> create table t1 ( reg_date_tran timestamp DEFAULT '0000-00-00 00:00:00' NOT NULL, reg_date timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL);
ERROR 1067 (42000): Invalid default value for 'reg_date_tran'
mysql> create table t1 ( reg_date_tran timestamp DEFAULT '1970-01-01 00:00:00' NOT NULL, reg_date timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL);
ERROR 1067 (42000): Invalid default value for 'reg_date_tran
모드 설정이 답이었군요 .. 말씀해주신대로 찾아보고 설정변경후에 다시해보니까 정상적으로 작동했습니다. 감사합니다 !
MySQL 은 표준에 어긋나는 부분을 허용하는 경우가 많습니다.
표준에 따를지 여부를 옵션으로 설정할 수 있구요. (기본은 비표준?)
0년0월0일은 표준 날짜가 아닙니다.
억지로 비표준으로 갈 필요가 있을지? 고민해 보세요.
DEFAULT 를 굳이 설정할 필요가 있는지도 고민해 보세요.
자세한 설명 정말 감사드립니다.
자료를 좀 더 찾아보면서 말씀하신대로 고민해보겠습니다 ㅎㅎ