我们更改了数据库模式,并使用连接表accounts\u users将用户/帐户之间的关系从1-1移动到多对多。
用户,
我们的数据仍然是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是不明确的,我需要一些select first或min之类的东西。
**要清楚的是,我确信数据中仍然存在1-1关系,但我无法找出将现有表中的数据恢复到原始表中的sql。我要找的是一些可以工作的sql,它可以从accounts\u用户那里获取数据,并将用户id放入account表中。谢谢,乔尔