1

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

我如何才能为我的任何列设置没有默认值或更新值的类型时间戳?

编辑:我使用 MySQL

4

1 回答 1

1

如果您使用 SQL Server,则该timestamp类型用于行版本控制,而不是用于存储实际日期或时间值。 请参阅 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
于 2012-07-15T01:43:46.010 回答