Ошибка при обновлении внешнего ключа таблицы с уникальным индексом - PullRequest
0 голосов
/ 03 октября 2019

В таблице есть несколько дубликатов, скажем, tableA, однако id таблицыA - это внешний ключ в другой таблице. Поэтому перед удалением записей в таблице А я хотел бы обновить внешний ключ в этой другой таблице. Это схема другой таблицы.

Схема таблицы:

id
foriegn_key_id
attribute_id

Indexes:
 "index_table_on_attribute_id_and_foriegn_key_id" UNIQUE, btree (attribute_id, foriegn_key_id)

Пример данных:

 id    foriegn_key_id attribute_id 
 1      2               3
 2      1               3
 3      1               4
 4      1               5

Ниже приведен код, которыйЯ попытался обновить внешний ключ.

Table.where(foriegn_key_id: 1).update(foriegn_key_id: 2)

Однако, когда попробуйте вышеуказанный код, я получаю следующую ошибку. ActiveRecord::RecordNotUnique

Для записей, которые я получаю только ошибку, я хотел бы удалить ее. Цикл и обновление отдельной записи и удаление записи, которая получает ActiveRecord::RecordNotUnique единственный путь, или есть более простой способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...