Генерация следующего идентификатора в таблице innodb

У меня есть таблица 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 как AUTO_INCREMENT, но такие запросы, как INSERT IGNORE и так далее, увеличивайте его все время, даже если вставка не была сделана, и это не хорошо.

Какой лучший способ решить эту проблему?

1 ответ

Измени свой id линия к этому -

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

Вы могли бы остаться с int(10), но я всегда нахожу, что лучше всего сделать так, чтобы идентификаторы выросли до огромных размеров на тот случай, если когда-нибудь понадобится.

И после CHARSET=ut8, добавлять --

AUTO_INCREMENT=1;

Таким образом, таблица знает, с чего начать приращение.

Другие вопросы по тегам