1

我有这个 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 添加到我的表中来创建一列,但不确定多列。

4

5 回答 5

5

您可以UNIQUE为多列添加约束

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

或通过更改现有表,

ALTER TABLE myTable ADD UNIQUE (author_name, comment);
于 2012-10-23T03:12:43.993 回答
1

将这些列称为复合主键。这样,它们将具有唯一的条目。

于 2012-10-23T03:13:53.300 回答
1

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

于 2012-10-23T03:14:12.760 回答
1

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

于 2012-10-23T03:18:51.823 回答
1

你也可以查看INSERT ... ON DUPLICATE KEY UPDATE dev.mysql.com

于 2012-10-23T03:25:34.400 回答