如何在MySQL中将一对一关系更改为一对多关系?

时间:2010-02-27 20:10:26

标签: sql mysql one-to-many lastinsertid multiple-insert

我目前有一个用户表,其中包含Youtube OAuth令牌的一对一关系。但是,我现在想要支持多个视频网站,并希望将其分解为一对多的关系。

我已经设置了新表:

  

令牌 - cols:id,site,username(用户在Youtube上的用户名),oauth_token,oauth_secret

     

user_tokens - cols:id,user_id,token_id

有没有办法可以从我当前用户的表中选择INTO这些表来导入用户名,oauth_token和oauth_secret列,同时还设置带有相应id的user_tokens表?

过去我编写了简短的PHP脚本来做这件事,但一直很好奇我是否可以直接在MySQL中完成。

2 个答案:

答案 0 :(得分:2)

对于一对多关系,您不需要关系表,只需要在标记表中使用user_id字段。这也使得更容易塑造桌子:

insert into tokens (site, user_id, username, oauth_token, oauth_secret)
select site, user_id, username, oauth_token, oauth_secret
from users

(由于我不确切知道您的用户表中的内容以及字段名称是什么,因此可能需要进行一些调整。)

答案 1 :(得分:0)

结帐MySQL documentation。我认为这应该对你有帮助。