我已经完成了我网站的第一个版本,现在我已准备好将其从我的本地开发环境(MySQL)移到我的x10hosting服务器(他们使用MariaDB)。
我可以移动所有文件,但是当我移动数据库时,问题就开始发生了。
我在我的本地计算机上从phpmyadmin将我的数据库导出为.sql文件,并在x10上打开phpmyadmin以导入该文件,但它会抛出此错误:
#1067 - Invalid default value for 'created'
我追踪的问题是“创造了”这个问题。是一个日期时间类型,显然MariaDB不允许你将current_timestamp设置为datetime的默认值。
如何在maria中使用当前时间戳作为日期时间默认值?
完整的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;
答案 0 :(得分:0)
在MariaDB中,您必须将DEFAULT_TIMESTAMP
称为函数()
:
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
^^
然后它将起作用。使用CURRENT_TIMESTAMP
或NOW
触发INSERT语句时,已经注意到了相同的特性。在MySQL中可以做到
insert into table (created, id) values ('CURRENT_TIMESTAMP', 42)
在MariaDB中必须是
insert into table (created, id) values (CURRENT_TIMESTAMP(), 42)
答案 1 :(得分:-1)