【已解决】主键模型设置按列更新为true;关闭严格模式后,插入字段不包括时间字段,但是时间字段有默认值的时候会报错

Viewed 71

版本 doris-2.1.2-rc04

背景是在数据更新的过程中想让doris自动记录下数据第一次创建的时间和后续的更新时间。

CREATE TABLE `test_insert` (
  `id` INT NOT NULL COMMENT 'ID',
  `status` INT NULL COMMENT '状态',
  `delete_flag` CHAR(1) NOT NULL DEFAULT "N" COMMENT '是否删除',
  `date_created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `created_by` INT NOT NULL DEFAULT "0" COMMENT '创建人',
  `date_updated` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `updated_by` INT NOT NULL DEFAULT "0" COMMENT '修改人'
) ENGINE=OLAP
UNIQUE KEY(`id`)
COMMENT 'test_insert'
DISTRIBUTED BY HASH(`id`) BUCKETS 2
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"enable_unique_key_merge_on_write" = "true"
);

有这么一张表,执行如下脚本的时候会报错

set enable_insert_strict=false;
set enable_unique_key_partial_update=TRUE  ;
insert into test_insert(id,status) 
values(12,2);

报错信息如下

[INTERNAL_ERROR]tablet error: [INVALID_ARGUMENT]parse date fail, string: '', 

当修改建表语句 如果不限制 created不为空,则插入不会有问题。但是数据会有异常。设定的默认值会丢失
date_created DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'

date_created DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
去掉notnull的限制后。执行同样的语句数据可以插入 但是会获得一条创建时间为空的记录。
12 2 N 0 2024-04-24 17:14:56 0

跟预期结果不一样。
看起来像是一个bug?

1 Answers

【问题状态】处理完成
【解决方案】这个问题会在2.1.3进行修复