Update on a spoon transformation gives 'duplicate key value violates unique constraint'
我正在尝试使用Kettle创建转换,该转换可以从我的数据库中读取表,然后连接到远程postgresql数据库,将新行插入远程数据库(或者如果值更改则更新,或者如果远程表具有 与我的表格相同的数据)。 它在插入时工作正常,但当它尝试更新行时,我收到以下错误:
1 2 3 4 5 6 | INSERT / UPDATE.0 - ERROR (version 5.2.0.0, build 1 FROM 2014-09-30_19-48-28 BY buildguy) : Unexpected error org.pentaho.di.core.exception.KettleStepException: 2014/10/15 16:52:54 - INSERT / UPDATE.0 - Error IN step, asking everyone TO stop because OF: 2014/10/15 16:52:54 - INSERT / UPDATE.0 - Error inserting/updating ROW 2014/10/15 16:52:54 - INSERT / UPDATE.0 - ERROR: duplicate KEY VALUE violates UNIQUE CONSTRAINT"test_pentaho_pkey" 2014/10/15 16:52:54 - INSERT / UPDATE.0 - Detail: KEY (id)=(3) already EXISTS. |
我很困惑为什么它试图插入因为id是主键,所以如果该id存在,它应该只更新它,而不是试图插入它。 我怎么能绕过这个? 我在插入/更新步骤设置中做错了什么?
这是我在勺子界面上的插入/更新步骤设置:
我的数据库表内容:
1 2 3 4 5 6 7 8 9 | id | name | age ----+------------+----- 1 | ioqw | 50 2 | 12132 | 32 4 | test_data1 | 24 5 | test_data1 | 24 6 | hello | 24 3 | hello3 | 50 (6 ROWS) |
远程数据库表内容:
1 2 3 4 5 6 7 8 | id | name | age ----+------------+----- 1 | ioqw | 50 2 | 12132 | 32 3 | test_data | 14 4 | test_data1 | 24 5 | test_data1 | 24 (5 ROWS) |
我试图更新id = 3的远程表行。
从错误消息判断,目标表的主键仅在