部分列更新的时候,如果不传createtime,使用了建表时间

Viewed 37

建表的时候
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
设置为current time
但是如果原本没这个数据,部分列更新的时候,生成的是建表时间,不是当前时间
如果不是部分列更新则正常

1 Answers

测试了一下在2.1.5未复现
image.png

复现步骤:

CREATE TABLE `test_update` (
  `id` int(11) NULL,
  `date_time` datetime(6) NULL COMMENT 'insert时间',
  `cruise_id` int(11) NULL,
  `dt` datetime(6) not NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=OLAP
unique KEY(`id`, `date_time`)
COMMENT '车辆子任务'
DISTRIBUTED BY HASH(`id`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

set enable_unique_key_partial_update=true

INSERT INTO test_update (id, date_time, cruise_id) VALUES(2, '2024-09-03 11:17:33', 22);

SELECT  * FROM test_update