我正在使用Apache Phoenix,我正在尝试生成一堆测试数据,以便衡量性能。我想知道是否有办法使用一个UPSERT语句插入多行。
我想要一个类似于这个Oracle SQL语句的Phoenix:
insert into test_table (col_a,col_b)
select dbms_random.value(1,10), dbms_random.value(1,10)
from dual
connect by level <= 10;
如果没有,我还有一些选项,比如使用csv文件或创建程序为我做多个UPSERT。
答案 0 :(得分:1)
是的,有 Upsert Select 声明。
示例:
UPSERT INTO test.targetTable(col1, col2) SELECT col3, col4 FROM test.sourceTable WHERE col5 < 100
UPSERT INTO foo SELECT * FROM bar;
有关详细信息,请查看Apache Phoenix官方文档link
答案 1 :(得分:0)
我在为凤凰表创建测试数据时遇到了类似的问题。相反,我使用了与Phoenix的JDBC连接,然后将行插入到我的表中。是的,在phoenix中插入的选项是upsert,如果行键存在则基本上更新,否则如果行键不存在则插入。