【发布时间】:2019-07-08 19:40:31
【问题描述】:
我想要一列来存储行的创建日期。 我正在使用 php 和 mysql,但我认为这并不重要。
我已经寻找了一系列关于此的答案,但所有这些答案似乎都是为了更新现有表。好吧,肯定有一个我正在寻找的东西,因为这是一个非常基本的问题,但我还没有找到它。 我已经尝试过使用 DEFAULT、CONSTRAINT 的方法,但是一旦添加到我的代码中,它们都不允许我创建表。你可能会觉得我不精通sql,你不会错的。
这会创建表格,你能告诉我要添加什么吗?
CREATE TABLE IF NOT EXISTS artwork (
id_artwork int(4) NOT NULL AUTO_INCREMENT,
title varchar(50) NOT NULL,
creationDate DateTime(3),
CONSTRAINT PK_artwork PRIMARY KEY (id_artwork)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
我尝试了以下方法但没有成功:
creationDate DateTime(3) DEFAULT GETDATE()
creationDate DateTime(3) DEFAULT (GETDATE())
creationDate DATETIME(3) DEFAULT (CURRENT_TIMESTAMP)
MySQL 版本:5.7.23 - MySQL 社区服务器 (GPL)
【问题讨论】:
-
您可以使用
DEFAULTSQL 子句,如果未指定值,则默认为当前日期/时间。现在,如果你想强制执行这个值,你需要在INSERT和UPDATE上添加一个触发器,以确保它在创建时设置为正确的值,并且不会被更新更改。 -
显示您的
DEFAULT尝试。