Авто приращение остановлено в MySQL? - PullRequest
0 голосов
/ 08 января 2009

Я работаю над сценарием, который, к сожалению, унаследовал - без комментариев или чего-то еще. Argh! В целях тестирования я продублировал одну из таблиц в базе данных, которая имела идентификатор с автоинкрементом. Однако когда данные сохраняются в базе данных, идентификационный номер просто читается как «0» - это значение по умолчанию для этого столбца. Я не уверен, почему он больше не увеличивается автоматически ... есть мысли? Спасибо!

Ответы [ 4 ]

4 голосов
/ 08 января 2009

Вы уверены, что для поля в дубликате таблицы установлено автоматическое увеличение? Попробуйте запустить:

 ALTER TABLE `duplicate_table` CHANGE `ai_key` `ai_key` INT( key_length ) NOT NULL AUTO_INCREMENT  

И посмотри, установлен он или нет.

2 голосов
/ 08 января 2009

Вы создали новую таблицу с нуля или как настоящую копию? Если предполагается, что столбец имеет автоинкремент, это должен быть первичный (или хотя бы уникальный) ключ без значения по умолчанию.

1 голос
/ 08 января 2009

Просто для двойной проверки используйте оператор sql, чтобы показать show create table синтаксис для обеих таблиц и сравнить.

show create table <table>
0 голосов
/ 08 января 2009

Похоже, ваша колонка больше не auto_increment. Это случилось со мной пару раз, потому что в phpMyAdmin была ошибка (?), Которую я использовал для создания резервных копий: она не добавляла ключевое слово auto_increment в инструкции CREATE TABLE. Это была сильная боль в заднице ...

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