我有一个名为requests
的表,其中列为id
,placeId
,songId
,userId
id
是表的主要索引。其余列只是无符号整数,没有定义其他唯一键。
我想要placeId
& songId
对是唯一的,即,如果某行有placeId
:5且songId
:12,则其他行不能具有相同的组合。
我希望在SQL级别进行此检查,以便我可以查询insert into requests (...) values (...) on duplicate key do something else
答案 0 :(得分:2)
您可以在多个列上创建一个UNIQUE索引,如
CREATE UNIQUE INDEX placeSong
ON requests (placeId, songId)
答案 1 :(得分:2)
另一种方法是向表中添加唯一约束:
ALTER TABLE requests ADD CONSTRAINT placeSong UNIQUE( placeId , songId );
答案 2 :(得分:1)
CREATE TABLE `tbl` (
`ID` INT(11) NOT NULL AUTO_INCREMENT,
`field1` VARCHAR(45) NOT NULL DEFAULT '',
`field2` VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY KEY (`ID`),
UNIQUE INDEX `Index 2` (`field1`, `field2`)
);