我有这个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 来实现一列,但不确定多列。
答案 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