alb*_*ert 28
创建"已创建"和"已更新"等字段的好方法是
CREATE TABLE `mytable` (
`id` INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
`created` TIMESTAMP DEFAULT '0000-00-00 00:00:00',
`updated` TIMESTAMP DEFAULT now() ON UPDATE now(),
`myfield` VARCHAR(255)
);
Run Code Online (Sandbox Code Playgroud)
并且在"插入"期间必须在两列中输入空值:
INSERT INTO mytable (created,updated,myfield) VALUES (null,null,'blablabla');
Run Code Online (Sandbox Code Playgroud)
现在,在所有更新中,"已更新"字段将具有实际日期的新值.
UPDATE mytable SET myfield='blablablablu' WHERE myfield='blablabla';
Run Code Online (Sandbox Code Playgroud)
资料来源:http://gusiev.com/2009/04/update-and-create-timestamps-with-mysql/
Dim*_*try 20
从MYSQL版本5.6.5开始,您可以使用DEFAULT和ON UPDATE执行此操作.不需要触发器.
ts_create TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ts_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP更新CURRENT_TIMESTAMP
a_h*_*ame 11
您可以在一个表中有两列类型为timestamp的列.
以下适用于MySQL 5.0
create table t ( id integer, created_at timestamp default current_timestamp, updated_at timestamp );
我认为你将这与SQL Server混淆(其中时间戳不是真正的"时间戳",并且单个"时间戳"列确实存在限制)
编辑:但每次更改行时,您都需要一个触发器来更新update_at列.