阿里云 RDS-MySQL 8.0 日期处理有 BUG
<pre><code class="language-MySQL">CREATE TABLE `xxx` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`expire_time` TIMESTAMP NOT NULL COMMENT '超时时间',
PRIMARY KEY (`id`) USING BTREE
)
COMMENT='test' COLLATE='utf8mb4_general_ci' ENGINE=InnoDB;
/* SQL 错误( 1067 ):Invalid default value for 'expire_time' */
</code></pre>
<p>有点奇怪,上面是最小复现的语句,在开源版的 MySQL 8.0 上是没有问题的,开的配置是一样(默认)的,</p>
<pre><code>ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
</code></pre>
<p>目前来看触发的条件就是前面一句也是一个 TIMESTAMP 且后面修饰不一样就会出现,单独只有 <code>expire_time</code> 是没有问题的。</p>
<p>(啊,虽然现在用 timestamp 不太合理,但是我觉得我现在这个项目可能活不到 2038 年</p>
收藏(0)
分享
相关标签:
注意:本文归作者所有,未经作者允许,不得转载