索引唯一键似乎不起作用

时间:2013-11-02 21:24:24

标签: php mysql sql indexing unique-key

我正在尝试为我的聊天做一种朋友请求,

所以我设置了一个名为cyb_user_friendlist

的表

然后我放了一些这样的表:

1   id_friendlist   int(11) AUTO_INCREMENT   
2   from            int(11)     
3   to          int(11)         
4   couple          varchar(11)
5   accept          int(11)     
6   block           int(11)

因此,对于每个朋友请求,对此表进行插入,其中id为sender,from和id为receiver,但为了确保每对夫妇只有一个请求,我添加了一个名为couple的字段,其中有from和to与垂直分隔符的连接|。这个字段有一个uniq键,因为我想阻止多个记录。

唯一的事情是它似乎不起作用,实际上我将我的uniq键添加到这个字段和id_friendlist的主键但它不起作用,我可以发送许多请求...

我的请求$ sql要做的就是下面的那个:

$query = "INSERT INTO `cyb_users_friendlist` SET
            `from` = {$from},
            `to` = {$to},
            `couple` = '{$from}|{$to}'";

我真的不知道我哪里错了......

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

当你可以添加唯一索引时,为什么要添加另一个连接另一个字段的字段?

mysql combined unique keys

ALTER TABLE `YOUR TABLE` ADD UNIQUE `unique` ( `from` , `to` ) 

答案 1 :(得分:0)

 $query = "INSERT INTO `cyb_users_friendlist` SET
        `from` = $from,
        `to` = $to,
        `couple` = concat('$from','|','$to')'";