是否启用 Timestamp 类型插入时自动填充(auto_set_timestamp)
📄字数 885
👁️阅读量 加载中...
引入版本
v12.10.2
功能描述
开启该参数,TIMESTAMP 数据类型的字段若无默认值且不显式指定值,则使用当前系统时间。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | BOOLEAN |
| 默认值 | TRUE |
| 取值范围 | TRUE,FALSE |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 该参数控制 TIMESTAMP 数据类型字段的取值行为。
| auto_set_timestamp | TIMESTAMP 数据类型的字段在无默认值且不显式指定值情况下的取值 |
|---|---|
| TRUE | 当前系统时间 |
| FALSE | NULL |
注意
- 定义表字段时若显式指定了
DEFAULT ON NULL FOR INSERT AND UPDATE NULL,则向该字段插入/更新 NULL 值,其行为受 auto_set_timestamp 影响。
示例
- 在线修改 auto_set_timestamp
sql
-- 在线修改 auto_set_timestamp
SQL> SET auto_set_timestamp TO true;
-- 在线查看 auto_set_timestamp
SQL> SHOW auto_set_timestamp;
/*
* 场景一:
* 1. auto_set_timestamp = true;
* 2. 字段未定义缺省默认值;
*/
SQL> CREATE TABLE t1(c1 timestamp);
SQL> INSERT INTO t1 VALUES(DEFAULT);
SQL> SELECT c1 FROM t1; /* 结果集为当前系统时间 */
/*
* 场景二:
* 1. auto_set_timestamp = true;
* 2. 字段定义了缺省默认值;
*/
SQL> CREATE TABLE t1(c1 timestamp DEFAULT '2000-01-01 00:00:00');
SQL> INSERT INTO t1 VALUES(DEFAULT);
SQL> SELECT c1 FROM t1; /* '2000-01-01 00:00:00' */
/*
* 场景三:
* 1. auto_set_timestamp = false;
* 2. 字段未定义缺省默认值;
*/
SQL> CREATE TABLE t1(c1 timestamp);
SQL> INSERT INTO t1 VALUES(DEFAULT);
SQL> SELECT c1 FROM t1; /* 结果集字段值为 NULL */1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
