php - 无法在数据库中创建表

标签 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 

显示错误表定义不正确; 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/

相关文章:

python - 如何使用 python 读取微秒精度的 mysql 日期时间字段

php - 通过多个条件插入 ORM 查找

php - 这看起来像密码的强盐吗

php - 获取列集合或字符集类型( latin1_swedish_ci 或 utf8_general_ci )

php - ID 的唯一性

mysql - 计算超过和低于阈值的项目数

mysql - 获取mysql中索引的所有值

php - Laravel 4.1 文档是如何工作的?

php - 不写IP地址连接WAMP服务器

sql - 主键还是唯一索引?