SQL - 使用两个没有默认值的时间戳列创建表

时间:2012-07-15 01:24:42

标签: mysql

我想创建一个包含两列的表,一个是“created”,另一个是“modified”,带有时间戳类型。我不希望他们有默认值。但是当我创建它们时,它会自动将CURRENT_TIMESTAMP作为其中至少一个的默认值,并且还会更新。

如何为我的任何列提供没有默认值或更新值的类型时间戳?

编辑:我使用MySQL

1 个答案:

答案 0 :(得分:0)

如果您使用的是SQL Server,timestamp类型用于行版本控制,而不是用于存储实际的日期或时间值。 See MSDN

您可以使用datetime数据类型创建列,然后使用触发器设置createdmodified值。

CREATE TRIGGER trg_SetDateCreated ON MyTable
FOR INSERT AS 
    UPDATE MyTable 
    SET created = CURRENT_TIMESTAMP
    WHERE MyTable.id = (SELECT Id FROM Inserted);
GO

CREATE TRIGGER trg_SetDateModified ON MyTable
FOR UPDATE AS 
    UPDATE MyTable
    SET modified = CURRENT_TIMESTAMP
    WHERE MyTable.id = (SELECT Id FROM Inserted);
GO