【问题标题】:How to add IDs from one table to another?如何将一张表的 ID 添加到另一张表?
【发布时间】:2010-08-19 14:49:30
【问题描述】:

不确定如何正确执行此操作。

我的 users 表中已有大约 500,000 行。

我正在为我的音乐社区创建一个播放列表功能,所以我有一个名为播放列表的表格。我想为 500,00 个用户中的每一个用户提供一个名为“收藏夹”的默认播放列表。

最好的方法是什么?

我应该调用 users 表并遍历数据吗?在每个循环中,我将 USERID 插入到播放列表表中?有没有更高效的流程?

【问题讨论】:

  • 如果你有一个一次性任务要做,你可以选择任何你想要的方式,甚至是一个(合理的)低效率的......如果你不得不一直这样做,那就是另一回事了...
  • 好点,从来没有这样想过。我想我只是害怕拉动整个用户表会降低数据库服务器的速度。
  • @pizel,您是否允许用户拥有多个播放列表
  • 迈克尔,是的。用户将能够随时创建其他播放列表。但是当我们启动该功能时,我希望每个用户自动拥有(由我们)创建的 1 个播放列表,称为收藏夹。

标签: php mysql


【解决方案1】:

您应该能够运行查询

UPDATE table_reference
SET column = 'Favorites'

没有 WHERE 子句,因此它将应用于所有内容。

编辑

如果您打算将默认值设为“收藏夹”,您可以为该字段设置默认值,以免再次遇到此问题。

【讨论】:

    【解决方案2】:

    我假设您允许用户拥有多个播放列表,并且用户不能共享一个公共播放列表(即不是多对多,因此只有一个用户可以拥有相同的播放列表)

    这意味着您需要为每个用户复制收藏夹播放列表记录,例如:

    INSERT into PlayLists(UserId, PlayListName)
    SELECT u.ID, 'Favorites' FROM Users u
    

    您可能还有一个多对多表 PlayListSong 或类似的将歌曲链接到播放列表的表

    这也意味着您还需要复制所有链接 - 如果您可以展示更多有关您的表格设计的信息,那么 SO 成员也可以为您提供帮助。

    【讨论】:

      猜你喜欢
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多