0
0

Урок 7.4. Обновление данных в таблице MySQL. Оператор UPDATE:

При изменении данных (год с 2015 на 1990) появилась новая строка с 1990-м  годом, но также осталась и прежняя, с 2015-м  годом.  Как убрать задвоение строк и как этого избежать в дальнейшем?


александр миронов
2 years ago






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

Михаил К
2 years ago

Михаил, спасибо за ответ! Возможно были в коде задвоения, сейчас уже не определю. А, может быть, я просто не обновил movie  (не нажал на movie). В дальнейшем, почему-то эта ошибка не повторялась. Сейчас другая проблема: в phpmyadmin удалил несколько строк и теперь id присваивается не по порядку, а как бы помнит удаленные строки и присватвает на единицу больше, от последней удаленной строки, т.е. не присваивает id  следующий за расположенной в phpmyadmin. Если можно, посоветуйте, как вернуться в автоматический режим. Заранее благодарю

александр миронов
2 years ago

Как раз так работает автоматическое присвоение id записи - у вас в базе/таблице установлен для поля id параметр AUTO_INCREMENT - вы можете это увидеть если нажмете вкладку Структура для таблицы.

Изменить автоматически присваиваемый номер, можно вручную в параметрах таблицы - вкладка Операции -> Параметры таблицы -> поле AUTO_INCREMENT

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

Но как я понимаю, что например у вас несколько таблиц взаимосявязанных. И вы например удалили запись из одной талицы, но при этом для нее остались связанные данные в других таблицах. И поэтому те же id удаленных записей лучше не использовать, так как могут возникнуть ошибочные данные, т.е. новая запись привяжется к старым данным оставшимся от удаленной записи. Поэтому AUTO_INCREMENT по умолчанию работает так чтобы не было таких пересечений и номера ID удаленных записей не использует при создании новых.

Михаил К
2 years ago

3 ответов