如何防止重复条目添加到数据库表?

时间:2012-10-23 03:10:54

标签: php mysql sql

我有这个PHP / MySQL脚本,它在我的数据库中添加注释:

$SQL = "INSERT INTO blog_comments (article_id, author_name, comment, path, posted, status) ";
$SQL .= "VALUES (:article_id, :name, :comment, :next_path, Now(), 'Live');";

$STH = $DBH->prepare($SQL);
$STH->bindParam(':article_id', $article_id);
$STH->bindParam(':name', $name);
$STH->bindParam(':comment', $comment);
$STH->bindParam(':next_path', $next_path);
$STH->execute();

有没有办法修改它,以便它不会在此表中插入相同的[author_name][article_id][comment]?我知道可以通过向我的表中添加UNIQUE 来实现一列,但不确定多列。

5 个答案:

答案 0 :(得分:5)

您可以为多列添加UNIQUE约束

CREATE TABLE
(
.....
CONSTRAINT tab_uq UNIQUE (author_name, comment)
)

或通过改变现有表格,

ALTER TABLE myTable ADD UNIQUE (author_name, comment);

答案 1 :(得分:1)

将这些列称为复合主键。 这样,他们就会有一个独特的条目。

答案 2 :(得分:1)

您可以制作多个字段的唯一键

答案 3 :(得分:1)

我猜你可以在插入数据之前检查db的结果

答案 4 :(得分:1)

您还可以查看INSERT ... ON DUPLICATE KEY UPDATE dev.mysql.com