0

解决方案:

在多列上放置唯一约束

ALTER TABLE rating ADD UNIQUE KEY ( id , id ); 

我想在我的评分系统中插入一个分数。如果数据不存在,我希望能够插入数据。如果确实存在,我还希望相同的查询返回真/假。

我调查INSERT IGNORE过,但默默地失败了,所以我不知道如何检查。

我知道我可以尝试 aSELECT ... WHERE id = 1和 THAN 插入,但我想将其移至单个插入,这可能吗?

4

2 回答 2

1

如果您在要检查的一个或多个列上使用唯一键约束,则如果没有数据,则正常插入将成功,或者如果已经有匹配项,则由于唯一键约束而嘈杂地失败。

于 2012-10-20T06:57:02.570 回答
0
INSERT INTO `rating` (value1) 
SELECT 'your rate for  value1' FROM `rating` 
WHERE NOT EXISTS (SELECT * FROM `rating` 
WHERE value1='your rate for  value1' ) LIMIT 1;
于 2012-10-20T07:01:35.440 回答