这是我用于创建表的查询
CREATE TABLE IF NOT EXISTS `logging_api_request_js` (
`id` int(30) unsigned NOT NULL AUTO_INCREMENT,
`log_message` longtext,
`level` varchar(10) DEFAULT NULL,
`ip_address_merchant` varchar(45) DEFAULT NULL,
`ip_address_customer` varchar(45) DEFAULT NULL,
`creationTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updateTime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11
显示错误表定义不正确; DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列
当我用谷歌搜索时,我在 mysql 5.6 中看到了这一点。版本此问题/限制已取消。但我现在无法升级 mysql。
有没有解决这个问题的方法,无需更改表结构以使用 mysql 转储它?请帮忙。我对数据库操作知之甚少。请帮忙。谢谢
最佳答案
您可以删除ON UPDATE CURRENT_TIMESTAMP
并创建触发器。
DROP TRIGGER IF EXISTS `update_logging_api_request_js`;
DELIMITER //
CREATE TRIGGER `update_logging_api_request_js` BEFORE UPDATE ON `logging_api_request_js`
FOR EACH ROW BEGIN
SET NEW.updateTime = NEW.creationTime;
END
//
DELIMITER ;
关于php - 无法在数据库中创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27371715/