在MySql中UPDATE后自动递增跳过值?

时间:2014-10-07 14:34:24

标签: php mysql mysqli

我不知道为什么,我的查询正在完成他的工作,但有时ID自动增量不会像它应该的那样。

$stmt = $this->mysqli->prepare("INSERT INTO `user` (`name`, `date`) VALUES ('$name','$timestamp') ON DUPLICATE KEY UPDATE `name` = VALUES(name), `update` = '$timestamp'");
$stmt->execute();

// My MySql table
---------------------
id | name | date                |   update                |
1  | John | 2014-10-07 15:42:14 |   0000-00-00 00:00:00   |
---------------------

当我再次插入John时

// he will do update good
---------------------
id | name | date                |   update                |
1  | John | 2014-10-07 15:42:14 |   2014-10-07 15:43:20   |
---------------------

现在,来了bug,当我插入Anie时,我会得到:

// But now he will skip ID number 2 - Why ? and how to fix this ?
---------------------
id | name  | date                |   update                |
3  | Annie | 2014-10-07 15:44:14 |   0000-00-00 00:00:00   |
---------------------

ID设置为主键,唯一,auto_increment

我正在使用MySqli INNODB引擎和PHP 5.5

0 个答案:

没有答案