【发布时间】:2020-05-16 22:30:58
【问题描述】:
我的 cPanel 服务器中运行着 MyISAM 引擎,服务器不支持 InnoDB 引擎,我只有 MyISAM 引擎。
当我尝试创建默认值为(当前时间 + 5 分钟)的时间戳类型的表列时,它会出错。
这在我的使用 InnoDB 的机器上有效,但在使用 MyISAM 的服务器中它给出了错误You have an error in your SQL syntax; check the manual that... near DEFAULT (NOW() + 300)
CREATE TABLE test(
token_death_time TIMESTAMP DEFAULT (NOW() + 300)
);
我也试过
CREATE TABLE test(
token_death_time TIMESTAMP DEFAULT DATE_ADD(NOW(), INTERVAL 5 MINUTE)
);
我能否使用 MyISAM 实现我想要的,或者我必须在我的 PHP 脚本中进行“添加”?
【问题讨论】:
-
考虑到“在服务器上我没有创建触发器的权限”,我建议您在检查令牌过期的查询中考虑这 5 分钟。
-
请查看我更新的答案,您可以使用变量和准备语句找到解决方案。
-
@Akina 谢谢,但我在同步 php 时间和 mysql 时间时遇到问题。
-
我在同步 php 和 mysql 时间时遇到问题。 在服务器端执行所有计算 - 这个问题没有发生的基础。