programing

마리아에서의 Datetime current_timestampDB

sourcejob 2022. 12. 24. 17:42
반응형

마리아에서의 Datetime current_timestampDB

사이트의 첫 번째 버전을 완료했습니다.이제 로컬 개발 환경(MySQL)에서 x10 호스팅 서버(MariaDB 사용)로 이동할 준비가 되었습니다.

모든 파일을 정상적으로 이동할 수 있지만 데이터베이스를 이동하면서 문제가 발생하기 시작했습니다.

로컬 머신의 phpmyadmin에서 .sql 파일로 데이터베이스를 내보내고 파일을 Import하기 위해 x10에서 phpmyadmin을 열었는데 다음 오류가 발생합니다.

#1067 - Invalid default value for 'created' 

이 문제를 추적한 결과, 'created'는 datetime 타입이며, MariaDB에서는 current_timestamp를 datetime 기본값으로 설정할 수 없는 것 같습니다.

현재 타임스탬프를 마리아에서 날짜/시간 기본값으로 사용하려면 어떻게 해야 합니까?

전체 create 문은 다음과 같습니다.

CREATE TABLE IF NOT EXISTS  `comments` (
   `id` BIGINT( 10 ) NOT NULL AUTO_INCREMENT ,
   `post` BIGINT( 10 ) NOT NULL ,
   `author` VARCHAR( 50 ) NOT NULL ,
   `comment` TEXT NOT NULL ,
   `mod_status` INT( 2 ) NOT NULL DEFAULT  '0' COMMENT  '0 is needing moderation,   1 is approved, and 2 is rejected',
   `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
   PRIMARY KEY (  `id` )
) ENGINE = INNODB DEFAULT CHARSET = latin1 AUTO_INCREMENT =4;

MariaDB에서는 다음을 참조해야 합니다.DEFAULT_TIMESTAMP함수로서():

`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
                                                     ^^

그럼 될 거야.다음을 사용하여 INSERT 문을 열 때 동일한 특성을 발견함CURRENT_TIMESTAMP또는NOWMySQL에서는 다음을 수행할 수 있습니다.

insert into table (created, id) values ('CURRENT_TIMESTAMP', 42)

MariaDB에서는 반드시

insert into table (created, id) values (CURRENT_TIMESTAMP(), 42)

당신의 컬럼은 타임스탬프가 아닌 datetime 타입일 것 같은데

current_date

https://mariadb.com/kb/en/mariadb/current_date/ 를 참조해 주세요.

언급URL : https://stackoverflow.com/questions/32805147/datetime-current-timestamp-in-mariadb

반응형