Mysql / Django - начать автоматическое увеличение до 1 - PullRequest
2 голосов
/ 15 января 2011

У меня есть скрипт django, который загружает данные, начало скрипта удаляет все данные в базе данных.Поэтому, когда я выполняю первый раз этот скрипт, первичные ключи с автоинкрементом начинаются с 1 до 15 (если 15 объектов), и если я хочу перезагрузить данные, я снова запускаю скрипт.Моя проблема заключается в том, что когда я выполняю его снова, числа pks начинаются с 16 (для 2-го запуска), я бы хотел, чтобы каждый раз, когда auto_increment начинался с 1, возможно ли каждый раз восстанавливать структуру таблиц?

Ответы [ 2 ]

3 голосов
/ 15 января 2011

Вы можете использовать ALTER TABLE , но я не уверен, что это намного лучше, чем просто восстановить схему.

2 голосов
/ 15 января 2011

Когда вы удаляете строки из базы данных, вы не совсем:

  1. Освобождение дискового пространства

  2. Сброс значений auto_increment, как вы заметили.

Таким образом, на самом деле было бы лучше оставить таблицу и воссоздать ее по мере необходимости. В противном случае вы можете использовать только:

  1. TRUNCATE <table name>; (В зависимости от вашего механизма хранения, он будет фактически удален / воссоздан, как указано выше для вас.)

  2. ALTER TABLE <table name> SET AUTO_INCREMENT = X;

Из них я бы рекомендовал использовать усеченный подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...