Мы изменили схему базы данных и переместили отношения между пользователями / учетными записями с 1-1 на многие для многих, используя объединенную таблицу accounts_users.
Итак, мы имеем
Счета,
пользователей,
account_users (user_id и account_id)
Наши данные все еще 1-1, и мы решили вернуться назад. Поэтому мне нужно sql, чтобы вернуться назад:
Для миграции я использовал:
INSERT INTO accounts_users (account_id,user_id) SELECT id AS account_id, user_id AS user_id FROM accounts
Чтобы вернуться назад, я попытался:
UPDATE
accounts
SET
user_id = ru.user_id
FROM
accounts r, accounts_users ru
ON
r.id = ru.account_id
Update accounts
Set r.user_id = ru.user_id
FROM accounts r, accounts_users ru
WHERE r.id = ru.account_id
SELECT accounts_users.user_id
INTO accounts
FROM accounts_users
INNER JOIN accounts
ON accounts.id = accounts_users.account_id
Все это дает какую-то ошибку sql. Я думаю, это потому, что мой sql неоднозначен, и мне нужно сначала выбрать что-нибудь, или мин, или что-то в этом роде.
** Для ясности, я уверен, что в данных все еще есть отношение 1-1, но я не могу понять, как sql перенести данные из существующих таблиц в исходные таблицы. Что мне нужно, так это какой-нибудь работающий sql, который возьмет данные из account_users и поместит user_id в таблицу account. Спасибо, Джоэл