0
在MySQL中,我想有一个类型为TIMESTAMP
类型的表列,但其中不是更新到行更新当前时间戳。避免“在更新current_timestamp”
我的表是作为下面简单:
CREATE TABLE `test` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`lastAccess` TIMESTAMP NOT NULL,
PRIMARY KEY (`id`)
);
然后它被MySQL的创建类似如下:
DESCRIBE TABLE `test`;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| lastAccess | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+---------------------+------+-----+-------------------+-----------------------------+
如何避免的默认值,以及作为“更新”行为?
我使用InnoDB引擎,如果它很重要。
MySQL版本:5.5.41-0ubuntu0.14.04.1
改为使用日期时间字段?时间戳应该更新自己......或者包含更新中的字段,所以它是'update ... set lastaccess = lastaccess',使它用自己的当前值更新自己。 – 2015-02-23 17:23:03
@MarcB感谢您的评论。我决定时间戳,因为它是(至少我认为它)基本上是一个UNIX时间戳(整数)和时区无关的(不是日历日期+挂钟时间,而是世界时间线上的一个点) - 也许我毕竟这个时间戳应该使用BIGINT ... – leemes 2015-02-23 17:26:04