本文主要是介绍Phoenix使用ROW_TIMESTAMP字段导致无法从null更新数据的故障描述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在使用Phoenix的过程中,发现了一个奇怪的异常现象,其中一个表,有个字段(VARCHAR类型),一旦这个字段被更新为null值,从此就无法重新更新该字段的值。
我在测试过程中,重新新建一张表,就发现可以正常更新,是我困惑不已。
最后经过反复对比,发现是另外一个字段设置成ROW_TIMESTAMP导致的,下面详细讲述一些问题的复习。
目前测试发现问题的Phoenix版本为4.14.0,另外,我在阿里云的5.2.0版本上测试,也同样发现该问题。
先来讲一下正常的逻辑情况。
首先我们先建立一个测试表,语句如下:
CREATE TABLE hyy_test_1(
f_index CHAR(2) not null,
f_create_time date not null,
f_content VARCHAR,
constraint pk primary key(f_index, f_create_time)
)
SALT_BUCKETS = 20;
注意一下,这里的f_create_time是主键,但没有设置为ROW_TIMESTAMP类型,f_content就是我们要测试的VARCHAR字段。
接下来,我们往该表加一条有值的数据,语句如下:
upsert into hyy_test_1(f_index, f_create_time, f_content) values('1', '2019-11-07 14:01:37','哈哈哈');
</
这篇关于Phoenix使用ROW_TIMESTAMP字段导致无法从null更新数据的故障描述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!