我们更改了数据库模式,并使用连接表 accounts_users 将用户/帐户之间的关系从 1-1 移动到了多对多。
所以我们有账户,用户,accounts_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,它将从 accounts_users 获取数据并将 user_id 放入 account 表中。谢谢,乔尔