我有一个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_id
,nickname
对数组network_id
。对于users
中存在的nickname
,我想更新他们的id
。对于那些不存在的人,我想将它们插入到生成(新增加的)id
的表中。
早些时候,我使用INSERT IGNORE
作为AUTO_INCREMENT,但{{1}}等查询会一直递增,即使没有插入,也不好。
解决此问题的最佳方法是什么?
答案 0 :(得分:0)
将您的id
行更改为此< - p>
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
你可以继续使用int(10),但我总是觉得最好能让id成长为大尺寸,以防万一有需要。
在CHARSET=ut8
之后,添加 -
AUTO_INCREMENT=1;
这样表就知道从哪里开始递增。