无法在数据库中创建表

时间:2014-12-09 04:58:06

标签: php mysql database

这是我用来创建表的查询

   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 

显示错误Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

当我用Google搜索时,我在mysql 5.6中看到了这一点。版本此问题/限制已经取消。但我现在无法升级mysql。

有没有解决这个问题,更改表结构以使用mysql转储它?请帮助。我对db操作知之甚少。请帮忙。谢谢

1 个答案:

答案 0 :(得分:2)

您可以删除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 ;