1

您好我正在使用 SnappyData 并尝试使用以下Table_A行进行更新Table_B

Table_A(key1, key2, val, primary key(key1, key2)) -- cumulative results
Table_B(key1, key2, val, primary key(key1, key2)) -- new rows - updates

由于Table_B将包含 (key1, key2) 中已存在的值Table_A,因此应替换Table_A. 所以我使用“ PUT INTO ”而不是“INSERT INTO”语句来更新存储在Table_A

我的 PUT INTO 语句如下所示:

PUT INTO Table_A
SELECT * from Table_B

但是 中的行Table_B没有出现在 中Table_A

但是,如果我直接插入值:

PUT INTO Table_A
VALUES (1, 1, 1)

行 (1, 1, 1) 确实出现在Table_A. 如果我使用插入:

INSERT INTO Table_A
SELECT * from Table_B

中的行Table_B显示在 中Table_A,直到出现 dup key 错误并且我的程序退出。

我尝试了单列主键(即key1),但仍然没有运气。

那么我在这里做错了什么?还是“PUT INTO”不起作用或“PUT INTO”语句有延迟?

更新:

我使用的是 SnappyData 本地模式,我只是尝试了集群模式并在这里遇到了一些错误(奇怪的是它不会在本地模式下抛出错误,而是它只是不能静默工作。)

4

2 回答 2

2

您只需要在 put into 语句中提供 table_a 模式 - 所以它应该是: snappy> put into table_a (key1, val) select * from table_b;

于 2017-04-14T02:15:13.273 回答
1

是的,我们已经添加了一个文档票来跟踪这一点,文档应该相应地更新。谢谢。

于 2017-04-14T02:22:25.793 回答