MySQL插入到多个检查

时间:2014-05-01 19:32:25

标签: php mysql

在Facebook应用中,他有以下数据库列:

id (auto_increment)
facebook_id (VARCHAR)
email (VARCHAR)
like_name (VARCHAR)
like_id (VARCHAR)

如果我们想为同一个facebook_id允许多个条目,但不允许每个facebook_id的like_id重复,那么查询是什么?我们希望允许多个facebook_id具有相同的like_id。我们需要设置任何索引吗?我们尝试进行DUPLICATE KEY更新,但它不起作用。

    $likessql = $conn->prepare('INSERT IGNORE likes (facebook_id,email,like_name,like_id) VALUES(:facebook_id,:email,:like_name,:like_id) ON DUPLICATE KEY UPDATE like_id = :like_id');
    foreach ($likes as $like) {
        $likessql->execute(array(
        ':facebook_id' => $facebookid,
        ':email' => $email,
        ':like_name' => $like['name'],
        ':like_id' => $like['id']
    ));

2 个答案:

答案 0 :(得分:0)

我通过将两个主索引设置为PRIMARY Seq_in_index = 1,Column_name = facebook_id来实现它。第二个索引是PRIMARY Seq_in_index = 2,Column_name = like_id。基本上我必须将主键设置为两个项目。

答案 1 :(得分:0)

您可以拥有一个UNIQUE约束,其中包含多个列。这将阻止使用多个PRIMARY KEY,在我看来,这是正确的方法。

有关详细信息,请参阅this page

祝你好运!