Mysql SQL-创建具有两个时间戳列且没有默认值的表

Mysql SQL-创建具有两个时间戳列且没有默认值的表,mysql,Mysql,我想创建一个包含两列的表,一列是创建的,一列是修改的,带有时间戳类型。我不希望它们有默认值。但当我创建它们时,它会自动将当前的_时间戳作为其中至少一个的默认时间戳,并在更新时显示 我怎么能让我的任何列的类型timestamp没有默认值或更新值 编辑:我使用MySQL如果您使用的是SQL Server,则时间戳类型用于行版本控制,而不是用于存储实际的日期或时间值 可以使用datetime数据类型创建列,然后使用触发器设置创建和修改的值 CREATE TRIGGER trg_SetDateCreat

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

我怎么能让我的任何列的类型timestamp没有默认值或更新值


编辑:我使用MySQL如果您使用的是SQL Server,则时间戳类型用于行版本控制,而不是用于存储实际的日期或时间值

可以使用datetime数据类型创建列,然后使用触发器设置创建和修改的值

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

创建表时间戳val1、时间戳val2有什么问题。。。;?我使用我的SQL。我不知道我应该为SQL使用datetime,也不知道触发器解决方案。谢谢我尝试在用户上创建触发器trg_SetDateCreated FOR INSERT AS UPDATE users SET us_created=CURRENT_TIMESTAMP WHERE users.us_id=SELECT us_id FROM INSERT;我得到了一个语法错误…好的,我的解决方案是针对SQL Server,而不是MySQL。也许其他人可以提供在MySQL中创建等效触发器的语法。看起来这个网站将是一个让你开始的好地方:唯一的问题是。。如果输入的数据与原始记录完全相同,则时间戳仍将更改。