Дамп значения auto_increment

Некоторые таблицы в нашей базе данных MYSQL заполнены данными по умолчанию (для всех клиентов) и данными для конкретных клиентов. Записи, специфичные для клиента, имеют идентификатор больше 1000, а записи данных по умолчанию имеют идентификаторы меньше 1000.

У каждого клиента есть собственная база данных, поэтому, если мы создаем новую среду, мы выгружаем нашу базу данных по умолчанию и восстанавливаем ее для клиента.

И вот в чем проблема. Если мы выгружаем пустую таблицу с AUTO_INCREMENT = 1001, значение автоматического увеличения игнорируется и устанавливается в 1, если таблица восстанавливается. Я использовал mysqldump и mydumper. Оба не работали.

Но если это какие-то данные в таблице, AUTO_INCREMENT не игнорируется и устанавливается на ожидаемое значение.

Я уже читал документацию по mysqldump, но ничего не нашел. Может кто-нибудь помочь мне с этой проблемой?

Привет, Арне


person Arne De Smedt    schedule 24.11.2016    source источник
comment
Обратите внимание: если вам нужно сделать это программно, получите max + 1 и используйте его в качестве установленного значения. Или, если вам нужно какое-то нестандартное значение, сделайте это. Но обратите внимание, что вы не можете установить AI на что-то меньшее, чем текущий максимум, и удерживать его при следующей вставке (он молча примет ваш запрос, но проигнорирует его при вставке). Кроме того, вам может потребоваться сделать это с помощью подготовленного оператора в хранимой процедуре или динамическом sql через ваш интерфейсный язык программирования.   -  person Drew    schedule 24.11.2016
comment
@drew Я знаю, как изменить значение AUTO_INCREMENT (так что это не дубликат), но мне интересно, почему mysqldump игнорирует AUTO_INCREMENT в выходном файле, если для него установлено значение 1001 и в таблице нет данных.   -  person Arne De Smedt    schedule 24.11.2016
comment
Потому что, если в таблице нет данных, а AI равен 1001, тогда произошло удаление из, а не усечение, которое привело бы к сбросу до 1. Таким образом, он покорно продолжает создание таблицы в том состоянии, в котором таблица была оставлена ​​(при условии, что у вас была причина оставить его на 1001).   -  person Drew    schedule 24.11.2016
comment
В противном случае будет подана жалоба. Почему он сброшен на 1, когда я хотел следующий на 1001.   -  person Drew    schedule 24.11.2016
comment
Я не могу воспроизвести. Моя копия mysqldump (MySQL 5.5.46) всегда включает предложение AUTO_INCREMENT=1001 с параметрами по умолчанию. Вы получаете AUTO_INCREMENT=1 или просто ничего?   -  person Álvaro González    schedule 24.11.2016