最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MYSQL设计表时,亟需两个TIMESTAMP字段的情况

来源:动视网 责编:小采 时间:2020-11-09 13:30:23
文档

MYSQL设计表时,亟需两个TIMESTAMP字段的情况

MYSQL设计表时,亟需两个TIMESTAMP字段的情况:MYSQL设计表时,需要 两个TIMESTAMP 字段的情况 有时候,数据库表有这样的需求,要一个记录创建时间,一个记录修改时间。 理想中的设计是这样的,更新时间的初始值和创建时间一样: CREATE TABLE `test_table` (`id` INT( 10 ) NOT NU
推荐度:
导读MYSQL设计表时,亟需两个TIMESTAMP字段的情况:MYSQL设计表时,需要 两个TIMESTAMP 字段的情况 有时候,数据库表有这样的需求,要一个记录创建时间,一个记录修改时间。 理想中的设计是这样的,更新时间的初始值和创建时间一样: CREATE TABLE `test_table` (`id` INT( 10 ) NOT NU


MYSQL设计表时,需要 两个TIMESTAMP 字段的情况 有时候,数据库表有这样的需求,要一个记录创建时间,一个记录修改时间。 理想中的设计是这样的,更新时间的初始值和创建时间一样: CREATE TABLE `test_table` (`id` INT( 10 ) NOT NULL,`create_time` TIMEST

MYSQL设计表时,需要 两个TIMESTAMP 字段的情况

有时候,数据库表有这样的需求,要一个记录创建时间,一个记录修改时间。

理想中的设计是这样的,更新时间的初始值和创建时间一样:

CREATE TABLE `test_table` (
`id` INT( 10 ) NOT NULL,
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = INNODB;

或者是这样的,更新时间初始值为空,只有在更新的时候才有值:

CREATE TABLE `test_table` (
`id` INT( 10 ) NOT NULL,
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = INNODB;

这样的建表SQL,是执行不了的,执行时报错,估计这个很多人遇到过吧:
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

网上找到个解决方法(只适用于更新时间的初始值和创建时间一样,当然这个也说得过去):

CREATE TABLE `test_table` (
`id` INT( 10 ) NOT NULL,
`create_time` TIMESTAMP NOT NULL DEFAULT 0,
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = INNODB;

INSERT语句这样写:

INSERT INTO test_table (id, create_time, update_time) VALUES (1, NULL, NULL);

或者这样写(注意,没有写create_time):

INSERT INTO test_table (id, update_time) VALUES (1, NULL);

UPDATE语句正常写法(假设test_table.id可以修改):

UPDATE test_table (id) VALUES (2);

文档

MYSQL设计表时,亟需两个TIMESTAMP字段的情况

MYSQL设计表时,亟需两个TIMESTAMP字段的情况:MYSQL设计表时,需要 两个TIMESTAMP 字段的情况 有时候,数据库表有这样的需求,要一个记录创建时间,一个记录修改时间。 理想中的设计是这样的,更新时间的初始值和创建时间一样: CREATE TABLE `test_table` (`id` INT( 10 ) NOT NU
推荐度:
标签: 两个 设计 情况
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top