我正在使用mysql,并且在所有表中都有四个字段,
created_by varchar(128)
created_on timestamp default current_timestamp
updated_by varchar(128)
updated_on timestamp default current_timestamp
我已经阅读了关于堆栈溢出的不同答案,每次在表行上执行某些操作时,默认值为current_timestamp
的字段会自动更新。但我希望created_on
在更新新记录时自动插入current_timestamp
,并且在一段时间后更新此记录时,只有updated_by字段会自动更新为current_timestamp
而不是created_by
答案 0 :(得分:0)
created_by varchar(128)
created_on timestamp default current_timestamp
updated_by varchar(128)
updated_on timestamp default current_timestamp ON UPDATE CURRENT_TIMESTAMP
MORE INFO :: http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
答案 1 :(得分:0)
我使用这个结构:
created_by varchar(128)
created_on timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
updated_by varchar(128)
updated_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
第一次INSERT INTO
使用NOW()
created_on
。之后修改行将始终自动更新updated_on
字段。无需为TIMESTAMP
语句触及UPDATE
列。 (注意:只有在确实更新了某些内容时才会更新时间戳.IE。使用现有值更新列不会修改任何内容,因此时间戳不会更新。)