Рефакторинг внешних ключей с обновлением после изменения первичного ключа - PullRequest
1 голос
/ 20 июля 2010

Мы столкнулись с проблемой без первичного ключа.Для удобства ввода данных было установлено значимое значение, поскольку все данные изначально добавлялись напрямую.Однако теперь значимое значение не всегда присутствует во всех записях.Итак, теперь мы переходим к автоматически сгенерированному, бессмысленному ключу.Но я должен обновить базу данных, чтобы отразить это.

Таким образом, в моей таблице продуктов есть столбцы serial (исходный ключ) и Id (новый PK).Моя таблица частей имеет 2 столбца FK_serial (старый FK) и FK_product (новый FK, в настоящее время установлен на 0 для всех записей).

Существует ли инструкция UPDATE, которая будет проходить через таблицу деталей и устанавливать для FK_product значение Id в таблице продуктов, где serial = FK_serial?

1 Ответ

2 голосов
/ 20 июля 2010
UPDATE parts 
JOIN products
ON parts.FK_serial = products.serial
SET parts.FK_product = products.Id;
...