在mysql中自动(不需要)更新触发器?

时间:2014-01-17 17:54:49

标签: mysql percona

我在Ubuntu 13.04上运行Percona的mysql分支(5.6.15)。在花了太长时间尝试使用我们的一个ETL进程调试问题之后,我发现mysql正在修改我的create table语法:

mysql> CREATE TABLE test ( test TIMESTAMP );
Query OK, 0 rows affected (0.03 sec)

mysql> show create table test\G
*************************** 1. row ***************************
       Table: test
Create Table: CREATE TABLE `test` (
  `test` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.01 sec)

mysql>

我不希望这更新触发器,我发现我可以通过使列成为'TIMESTAMP NULL'来解决这个问题,但我也不希望这个字段可以为空。

我是完全偏离基地还是不应该发生这种情况?有没有人遇到过这个?这是一些我不知道的设置,或者这可能是一个错误(我知道他们改变了5.6中时间戳字段的某些行为)?

1 个答案:

答案 0 :(得分:1)

这不是错误,只是表中的第一个时间戳列(如果没有另外指定)获取这些属性。你会添加另一个时间戳列,它将不会获得这些属性。在manual中了解有关它的更多信息。如果你真的遇到问题,可能会选择datetime而不是timestamp列吗?