因此,当我在那里更新数据时,我的数据库中包含时间戳的列会自动更新为当前时间戳,即使我没有传递任何时间戳(不传递 null ,但只是忽略此字段,不包括在更新数组中。)
我检查了表结构并发现时间戳列设置设置为“default - CURRENT_TIMESTAMP" and "on update - CURRENT_TIMESTAMP
”,但我从未在迁移中编写类似这样的语句,我不需要对当前时间戳进行任何自动更新(在我的迁移文件中,从中创建了数据库,只有$table->timestamp('date');
之类的行。
所以这里有一个问题:应该在迁移文件中写什么来避免这种情况,为什么它甚至出现?这是某种MySQL功能,还是MySQL解释被忽略的字段,如传递 null ?
答案 0 :(得分:2)
我在MySQL文档中找到了解决方案,据说迁移中的规范都不等于默认和更新时指定current_timestamp,所以为了避免我的问题,我必须在迁移中指定默认值,并且不指定update属性。 资料来源:http://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html