我的迁移是这样的:
$table->bigIncrements('id');
$table->timestamp('from_date');
$table->timestamp('to_date');
$table->timestamps();
问题是,当我迁移它时,第二个 from_date
自动获取 on update CURRENT_TIMESTAMP
属性,因此这意味着当我更新其他列时,该列将是也更新了。这就是我不想要的。我该如何预防?
最佳答案
您需要将 DateTime 列设为可为空,然后 MySQL 不会添加该列。默认情况下,MySQL 将其添加到表中的第一个时间戳中,除非明确告知不要这样做(通过允许字段为空值)。这是 MySQL 的事情,而不是 Laravel 的事情。
$table->timestamp('colName')->nullable();
阅读:
Automatic Initialization and Updating for TIMESTAMP and DATETIME - MYSQL DOCS
Laravel & MySQL auto-adding “on update current_timestamp()” to timestamp fields
关于Laravel 自动将 "on update CURRENT_TIMESTAMP"添加到某些特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57832169/