【发布时间】:2011-07-28 10:20:51
【问题描述】:
这是我的 MySQL 表:
- 左列自动递增。
- 中间列是用户的 id#。
- 右栏是他们喜欢的帖子的 ID#。
我正在向表中插入数据,如下所示:
$stmt = $db->prepare("INSERT INTO likes (user_id,post_id) VALUES (?,?)");
$stmt->execute(array($_SESSION['user'],$_POST['id']));
这很好用,但是正如您所见,MySQL 表有两个相同的行(id 的 3 和 4),它们的 user_id 为 5,post_id 为 196。换句话说,我的 MySQL 表记录了具有 id 的用户= 5 喜欢 id = 196 的帖子 两次。 我如何禁止存在两行具有相同 user_id 和相同 post_id 的情况
【问题讨论】:
-
您需要自动递增
id列吗?我只想在user_id,post_id上进行复合 PK -
@Martin @inquisitive 很少有不需要 ID 列的情况,这肯定不是那种情况。 See this question and answer
-
@rockerest - 您似乎将
PK与Id列混淆了。它们不是同一件事。我建议 OP 在 2 列上有一个复合主键。 -
@martin,很明显
id是他的PK -
@rockerest - 但目前还不清楚
id列是否有任何有用的目的(我怀疑它没有)。我建议放弃它并在超过 2 列上创建一个复合主键。