Я пытаюсь создать преобразование с помощью чайника, которое может читать таблицу из моей базы данных, а затем подключиться к удаленной базе данных postgresql, вставить новые строки в удаленную базу данных (или обновить, если значение изменилось или ничего не делать, если удаленная таблица имеет те же данные, что и моя таблица). Он отлично работает на вставку, но когда он пытается обновить строку, я получаю следующее сообщение об ошибке:Обновление при преобразовании ложки дает «дублирующее значение ключа нарушает уникальное ограничение»
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.
Я запутался, почему ее пытается вставить, потому что идентификатор является первичным ключом, так что если идентификатор существует, он должен просто обновить его, а не пытаться вставить его. Как я могу обойти это? Я что-то делаю неправильно в настройках шага Insert/Update?
Это мои настройки шага Insert/Update на интерфейсе Ложка в:
Мои таблицы базы данных содержимого:
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)
Дистанционные содержимое таблицы базы данных:
id | name | age
----+------------+-----
1 | ioqw | 50
2 | 12132 | 32
3 | test_data | 14
4 | test_data1 | 24
5 | test_data1 | 24
(5 rows)
I пытался обновить строку удаленной таблицы с id = 3 ,
Помог ли мой ответ для вас? –
Yup, сделал. Спасибо!! – bachkoi32