2013-09-23 13 views
1

我记得在我过去的项目工作中,我遇到了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错误,这可能吗?

回答

3

使两列的复合主键,

PRIMARY KEY (ad_id, user_id) 
+0

谢谢!很快就会接受! –

相关问题