mysql - 新表有问题,无法将默认值定义为 CURRENT_TIMESTAMP,但在我的本地环境中我可以

标签 mysql sql

我在将 mysql 表从我自己的计算机环境传输到 godaddy 托管的 mysql 时遇到问题。正如您在下图中看到的,postDate 是一个具有默认 CURRENT_TIMESTAMP 的 DATETIME 类型,它在我的计算机上运行完美,使当前日期和时间成为默认值。

但是,当我尝试在我的托管站点上添加表格时,出现了您看到的错误。如果我将“Deafult”留空,它可以毫无问题地保存,但不能使用 CURRENT_TIMESTAMP。

https://i.gyazo.com/0a28032d1f6c6419d44eaf21cbc94607.png

知道这是为什么吗?

是否有其他方法可以将当前日期和时间保存为表格中的默认值?

我的计算机环境和托管站点上的所有表都使用 InnoDB。

谢谢!

编辑:

有人建议我从我的机器和托管站点获取 mysql 版本。

我的机器: https://i.gyazo.com/b1cdf582ee4d980fd68fd3773ccb4f6e.png

GoDaddy: https://i.gyazo.com/3e619a678b8d243e0f0d70b3788b2259.png

基本上我的机器是5.7.10版本,godaddy是5.5.45

最佳答案

你应该比较你和他们机器上的 MySQL 版本。

旧版本的 MySQL 不允许 CURRENT_TIMESTAMP 作为 DATETIME 列的默认值。

较新的版本可以。

获取您的版本:

SHOW VARIABLES LIKE "%version%";

当你知道它们是什么时发布。

关于mysql - 新表有问题,无法将默认值定义为 CURRENT_TIMESTAMP,但在我的本地环境中我可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635106/

相关文章:

mysql - 如何在邻居列中插入 id 的数字?

php - CakePHP 根据 hasMany 关系获取 array() 中的匹配项

mysql - 如何在 MySQL 查询中包含用户?

mysql - 如何忽略某些查询并执行其余查询?

php - 在我的例子中,对 mysql 的 28800 次查询或大型数组的 28800 次迭代哪个更快?

mysql - VARCHAR 上的内部连接

c# - 如何将包含 "NOT IN"约束的 SQL 语句转换为其等效的 LINQ?

sql - 为什么我的简单 SQL 语句需要这么长时间才能执行?我该如何查找问题?

mysql - 在MySql中使用字符串插入表

mysql - 替换mysql中的CR字符