使用了函数计算后,date字段返回了datetim, 同时使用了union all语法导致插入数据失败
【 Bug 的影响】
数据无法正常插入
【可能的问题复现步骤】
drop table if exists cux_test3;
drop table if exists cux_test4;
create table cux_test3(id bigint,rate double,date_1 date , date_2 date );
create table cux_test4(id bigint,rate double,date_1 date , date_2 date );
insert cux_test3 values
(1, 2.0, date ‘2021-01-03’, date ‘2021-02-03’)
,(2, 4.0, date ‘2021-05-23’, date ‘2021-02-02’);
– 成功
insert into cux_test4
select d1.id, d1.rate, least(d1.date_1, d1.date_2) date1, d1.date_2
from cux_test3 d1;
– 成功
insert into cux_test4
select d2.id,
d2.rate,
max(d2.date_2) over(partition by d2.id) date1,
d2.date_2
from cux_test3 d2;
– 失败
insert into cux_test4
select d1.id, d1.rate, least(d1.date_1, d1.date_2) date1, d1.date_2
from cux_test3 d1
union all
select d2.id,
d2.rate,
max(d2.date_2) over(partition by d2.id) date1,
d2.date_2
from cux_test3 d2;
– 成功
insert into cux_test4
(id)
select 1 from dual;
– 失败
insert into cux_test4
(id)
select 1
from (select d1.id,
d1.rate,
least(d1.date_1, d1.date_2) date1,
d1.date_2
from cux_test3 d1
union all
select d2.id,
d2.rate,
max(d2.date_2) over(partition by d2.id) date1,
d2.date_2
from cux_test3 d2);
【相关组件及具体版本】
tidb v5.1.1