配置,以便没有记录可以相同

时间:2013-09-23 19:59:56

标签: mysql

我记得在过去的项目中,我遇到了一条MySQL错误消息,声明没有记录可以是相同的(所有列),因为它们不能单独选择。不幸的是我的MySQL没有给我这个错误,我有一个问题。

我有一个表来存储用户最喜欢的主题(或文章,如果你愿意),这很简单

CREATE TABLE `ad_favorites` (  
    `ad_id` int(10) unsigned NOT NULL,  
    `user_id` int(10) unsigned NOT NULL,  
    KEY `ad_id` (`ad_id`),  
    KEY `user_id` (`user_id`),  
    CONSTRAINT `ad_favorites_ibfk_1` FOREIGN KEY (`ad_id`) REFERENCES `ad` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,  
    CONSTRAINT `ad_favorites_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我需要无法插入两个相同的记录并在出现此类尝试时收到错误,以便在我的php中我的affected_rows属性显示为0.

长话短说如果我有记录并且我再次插入它我必须得到MySQL错误,是否可能?

1 个答案:

答案 0 :(得分:3)

使两列成为复合主键

PRIMARY KEY (ad_id, user_id)