在innodb表中生成下一个id

时间:2013-05-29 14:33:41

标签: mysql insert innodb insert-update

我有一个InndoDB表

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL,
  `network_id` int(10) unsigned NOT NULL,
  `nickname` varchar(20) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
 UNIQUE KEY `network_id` (`network_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

在php中,我收到一个数组$network_info,其中包含network_idnickname对数组network_id。对于users中存在的nickname,我想更新他们的id。对于那些不存在的人,我想将它们插入到生成(新增加的)id的表中。

早些时候,我使用INSERT IGNORE作为AUTO_INCREMENT,但{{1}}等查询会一直递增,即使没有插入,也不好。

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

将您的id行更改为此< - p>

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

你可以继续使用int(10),但我总是觉得最好能让id成长为大尺寸,以防万一有需要。

CHARSET=ut8之后,添加 -

AUTO_INCREMENT=1;

这样表就知道从哪里开始递增。