【发布时间】:2021-11-04 15:45:45
【问题描述】:
我正在为名为“playlist_songs”的 spotify 副本构建一个播放列表表,如下所示:
此表由外键组成:playlistID、userID 和 songID。我认为它的主键将是 playlistID、userID 和 orderID 的组合。
我希望 orderID 是一个自动递增的整数,对于每个唯一的 playlistID/userID 组合,它从 1 开始。
我还希望用户能够更改他们歌曲的顺序,这在某些情况下需要为给定的 playlistID/userID 组合更新以下所有 orderID
我将如何实现这一目标?仅使用 SQL 是否可行?
【问题讨论】:
-
请添加一些您尝试过的示例。如果你甚至不知道从哪里开始,但你真的想使用纯 SQL,我会尝试类似这个伪代码
INSERT ((select coalesce(max(orderid),0) from thetable where playlistID= myPlaylistID and userID = myUserId) + 1) INTO thetable。本质上,您是在告诉插入语句检查该用户的当前最大值(如果没有最大值,则为零),然后添加一个并插入。