我有一个名为 的表requests,其列是id, placeId, songId,userId
id是表的主索引。其余列只是无符号整数,并且没有定义其他唯一键。
我希望placeId&songId对是唯一的,即,如果一行具有placeId: 5 和songId: 12,则其他行不能具有相同的组合。
我希望这个检查发生在 SQL 级别,这样我就可以像这样进行查询insert into requests (...) values (...) on duplicate key do something else
您可以像这样在多个列上创建 UNIQUE 索引
CREATE UNIQUE INDEX placeSong
ON requests (placeId, songId)
Run Code Online (Sandbox Code Playgroud)
另一种方法是向表添加唯一约束:
ALTER TABLE requests ADD CONSTRAINT placeSong UNIQUE( placeId , songId );
Run Code Online (Sandbox Code Playgroud)