数据库增加时间列

在表中增加时间列,用于记录创建时间和修改时间

MySQL

1
2
3
4
5
6
7
8
DROP TABLE IF EXISTS 表名;
CREATE TABLE 表名 (
id int(11) NOT NULL,
name varchar(255) DEFAULT NULL,
createtime datetime DEFAULT CURRENT_TIMESTAMP,
updatetime datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

SQL Server

只能通过触发器实现,将A表的数据变化,通过触发器记录到B表中。

1
2
3
4
5
6
7
8
9
10
DECLARE @update_hostname VARCHAR (10),
@update_progname VARCHAR (16),
@update_time VARCHAR (22),
@update_type VARCHAR (3)
SELECT @update_hostname = hostname, @update_progname = program_name FROM master.dbo.sysprocesses WHERE spid = @@spid
SELECT @update_time = CONVERT(CHAR(10), getdate(), 111) + ' ' + CONVERT(CHAR(12), getdate(), 114)
SELECT @update_type = 'Delete'
INSERT INTO 表B
SELECT *, @update_hostname, @update_progname, @update_time, @update_type
FROM deleted