0

我有一个流量交换,每次查看一个站点时,我都希望它插入到一个看起来像这样的表中:

-用户
-站点

用户默认为 1,我不插入,因为我认为对于 INSERT IGNORE,您需要一个保持不变的列。

我目前的查询:

$db->Query("INSERT IGNORE INTO `surfed_site` (site) VALUES('".$sit['id']."')");

我有大约 85 人在线,但在 1 秒的刷新中,它从表中的 0 变为 750,这是不可能的,因为用户必须在插入站点之前查看站点 20 秒。

我认为我的 INSERT IGNORE 不起作用,有人能指导我看看我做错了什么吗?

4

1 回答 1

1

您确定该站点是主键吗?

为了让 INSERT IGNORE 工作,您必须将插入的值声明为主/唯一键

如果使用 IGNORE 关键字,则执行 INSERT 语句时发生的错误将被视为警告。例如,如果没有 IGNORE,复制表中现有 UNIQUE 索引或 PRIMARY KEY 值的行会导致重复键错误并且语句被中止。使用 IGNORE,行仍然没有插入,但不会发出错误。

http://dev.mysql.com/doc/refman/5.5/en/insert.html

如果不存在,则添加主键:

ALTER TABLE surfed_site ADD PRIMARY KEY (site);
于 2012-11-16T15:35:30.417 回答