使用Nutz提供的建表功能。
测试类:
@Table("t_test")
public class ATable {
@Id
private int id;
@Column("nm")
private String name;
@Column("ct")
private Timestamp createTime;
@Column("lm")
private Timestamp lastModified;
}
Nutz生成的建表语句是:
CREATE TABLE t_test(
id INT(32) AUTO_INCREMENT,
nm VARCHAR(50),
ct TIMESTAMP,
lm TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB CHARSET=utf8
查看表信息:
结果意外的发现ct这个字段竟然默认值被设置为CURRENT_TIMESTAMP
结果也就是每次只要有数据更新,这条信息的ct字段就会更新为最新时间。
通过调查,发现这是MySQL一个自作聪明的设定,在你建表的时候,第一次发现有字段为Timestamp类型,并且这个字段不允许为空,数据库就会将其默认值设置为CURRENT_TIMESTAMP
而一张表中只允许一个Timestamp字段为CURRENT_TIMESTAMP,这也就是为么上面的lm字段没有设置成CURRENT_TIMESTAMP的原因
所以在建表的时候,一定要注意Timestamp的设定,如果不想使用CURRENT_TIMESTAMP这个特性,就手动设置下字段的default值
分享到:
相关推荐
此外,MySQL允许在一个表中最多定义两个自动更新的`TIMESTAMP`字段,其中一个可以设置为`CURRENT_TIMESTAMP`作为默认值,另一个可以设置为`ON UPDATE CURRENT_TIMESTAMP`,这样在插入新行或更新行时,这两个字段都会...
本文将深入探讨MySQL数据库中的时间类型以及它们在Java编程语言中相对应的数据类型,以及如何在两者之间进行转换。 MySQL数据库提供了多种时间类型来处理日期和时间数据: 1. **DATE**:这个类型仅存储日期,格式...
以下是一个简单的实体类示例: ```java import java.time.LocalDate; import java.time.LocalDateTime; public class Event { private Long id; private LocalDate date; private LocalDateTime dateTime; //...
最后,我们使用getTime()方法将Date类型的日期对象转换成long类型的时间戳,然后将其传递给Timestamp构造函数,以创建一个Timestamp对象。 在上面的代码中,我们还使用了setLenient()方法,该方法用于控制是否将...
在 MySql 中,日期时间类型对应的是 DATE、TIME、DATETIME、TIMESTAMP 等类型。其中,DATE 类型用于存储日期,TIME 类型用于存储时间,DATETIME 类型用于存储日期和时间,TIMESTAMP 类型用于存储时间戳。 布尔类型 ...
MySQL的timestamp类型时间范围between ‘1970-01-01 00:00:01’ and ‘2038-01-19 03:14:07’,超出这个范围则值记录为’0000-00-00 00:00:00’,该类型的一个重要特点就是保存的时间与时区密切相关,上述所说的时间...
- 提供的"TimeStampDemo1"很可能是包含一个关于Timestamp处理的示例代码。虽然具体代码没有给出,但通常会展示如何创建一个带Timestamp字段的实体类,以及如何在Hibernate Session中操作这个实体,包括保存、更新和...
在MySQL中,`TIMESTAMP`字段允许最小值'1970-01-01 00:00:01'和最大值'2038-01-19 03:14:07',但'0000-00-00 00:00:00'是作为一个特殊的无效日期值存在。当你试图插入一个非有效日期或者不指定日期时,某些情况下,...
本篇文章将详细介绍三种常用的时间类型:`datetime`、`bigint` 和 `timestamp`,并通过一个实际的例子来探讨它们在不同场景下的表现。 #### 1. datetime 类型 `datetime` 类型可以用来存储日期和时间的组合值。其...
2. 日期和时间类型:MySQL 的日期和时间类型包括 DATETIME、DATE、TIMESTAMP、TIME 和 YEAR。DATETIME 可以存储日期和时间,而 DATE 和 TIME 分别只存储日期和时间部分。TIMESTAMP 类型特别之处在于它可以自动更新,...
TIMESTAMP 类型与 DATETIME 类型类似,但 TIMESTAMP 类型有一个自动更新的功能,即在插入或更新数据时,TIMESTAMP 字段将自动设置为当前时间戳。例如,创建一个存储最后一次更新时间的列可以使用 TIMESTAMP 类型: ...
Java 数据类型和 MySql 数据类型对应表 在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库...
MySQL中的`TIMESTAMP`数据类型是一个非常有用但同时也存在特定限制的时间戳字段。它用于存储日期和时间信息,与`DATETIME`数据类型相似,但有一些显著的区别。 `TIMESTAMP`在MySQL中占据4个字节,可以表示从1970年1...
在mysql中timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下只要你更新了记录timestamp会自动更新时间 通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项。...
MySQL数据库系统中,时间数据类型是用来存储日期和时间值的,其中包括`DATE`、`DATETIME`和`TIMESTAMP`。这些类型在某些方面相似,但在其他方面却有着明显的区别。下面将详细介绍`DATETIME`和`TIMESTAMP`的比较,并...
### MySQL与Java数据类型对应详解 #### 概述 在进行数据库操作时,尤其是在使用Java进行MySQL数据库开发的过程中,正确地映射数据类型是至关重要的一步。本文将详细介绍MySQL中的各种数据类型及其在Java中的对应...
MySQL中的TIMESTAMP字段类型是用来存储时间戳值的,它可以记录自1970年1月1日00:00:00 UTC(协调世界时)以来的秒数。TIMESTAMP在不同的情境下有不同的用法,这主要体现在它的默认值和更新策略上。 1. **TIMESTAMP ...
MySQL 数据类型详解 MySQL 数据类型是指在 MySQL 数据库中存储数据的方式,它决定了数据的存储格式、大小和范围。了解 MySQL 数据类型非常重要,因为它直接影响数据库的性能、可维护性和安全性。本篇文章将详细介绍...
在这个例子中,当我们插入一行数据并将`date1` 和 `data2` 列的值设置为`NULL`时,MySQL将自动用当前的日期和时间填充这些列。 通过以上介绍可以看出,在MySQL中,获取当前系统的日期和时间以及使用`TIMESTAMP` 列...
`TIMESTAMP`类型的另一个优点是,它支持毫秒、微秒甚至纳秒级别的精度,具体取决于数据库的设置。这意味着在比较两个时间戳时,即使它们看起来完全相同,Oracle仍然能够区分出哪一个是先发生的,这是`DATE`类型所...