|
Модераторы: skyboy |
|
Dima50 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: нет Всего: 2 |
Всем доброго дня.
У меня примитивная таблица на 4 поля. С id int(11) RRI auto_increment. Составных ключей нет. По идее id не должно обнуляться при удалении всех строк. Таким образом id не должны повторяться. И если статья с определенным id удалена, то ее не заменит другая статья по этой же ссылке. произошло что-то странно, каким-то образом обнулились ID хотя в программе нет функций изменения, Все запросы исключительно вставки и удаления. Не понимаю что могло произойти. Не подскажите. |
|||
|
||||
lelik133 |
|
|||
Опытный Профиль Группа: Awaiting Authorisation Сообщений: 517 Регистрация: 5.2.2003 Где: Москва Репутация: 2 Всего: 14 |
и когда это произошло после удаления отдельной строки или очистки всей таблицы?
|
|||
|
||||
Dima50 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: нет Всего: 2 |
Это произошло при удаление отдельных полей. id было порядка 75, я убирал записи по одной таблица отчистилась, потом обратил внимание что id==5. оппппа... Вот вчера отчищал таблицу раз пять через "DELETE FROM news where 1=1" и ничего Id не обнулялось. На ночь выключил комп, утром включил, зашел в форум решил проверить опять удалил все добавил поля, и id вновь обнуленный. Вот такая вот новость. может это от того что компьютер выключается и презапускается MySQL? раньше я на такое внимание не обращал чтоб id обнулялись. Не хорошо получается. Выходит по ссылке на удаленную статью челоевек может попасть не на уведомление об удалении, а на новую статью под старым id. |
|||
|
||||
lelik133 |
|
||||
Опытный Профиль Группа: Awaiting Authorisation Сообщений: 517 Регистрация: 5.2.2003 Где: Москва Репутация: 2 Всего: 14 |
нет выключении компа тут не причем.
либо где-то происходит
либо
форум какой самописный или нет? |
||||
|
|||||
Dima50 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: нет Всего: 2 |
Да все самописное. Так как начал писать с 0, то уверен на 100% что АLTER TABLE не присутствует.
Потому что его вообще в принципе нет. в начале написания работы с табличкой базы данных я создал 3 функции посылающие запрос. 1) добавления 2) удаление одной сточки по id 3) естественно получение того что создано потом когда обнаружил странное обнуление. Добавил функцию удаление всех строк из таблицы. Есть только INSERT INTO, SELECT, и DELETE. Вся работа с таблицей в одном файле, я на всякий случай перепроверил, изменения в существующие строки таблицы я точно не добавлял. И TRUNCATE table тоже нет. P.S. Настоящая мистика Это сообщение отредактировал(а) Dima50 - 9.7.2009, 12:59 |
|||
|
||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 5 Всего: 315 |
всё же приведите show create table
|
|||
|
||||
Dima50 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: нет Всего: 2 |
|
|||
|
||||
Бонифаций |
|
|||
Опытный Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 20 Всего: 40 |
У вас таблица типа innodb. Кторый (в отличии от myisam,) хранит счетчик автоинкремента в памяти. Поэтому при перезапуске сервера этот счетчик (один раз ) считается как select max(автоинкрементально поле), а затем уж при вставках значение берется из памяти.
Поэтому в innodb если вы удалили хвостовые записи и перезаупстили сервер, автоинкрементальный счетчик откатится. -------------------- Бонифаций. |
|||
|
||||
Dima50 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: нет Всего: 2 |
Скажите, а есть ли возможность изменить тип движка таблицы не удаляя существующую таблицу? В операторе ALTER TABLE я не нашел возможности менять ENGINE. P.S. За ответ благодарствую. Хотел добавить репутации, но к сожалению постов у меня маловато для этого. |
|||
|
||||
Бонифаций |
|
|||
Опытный Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 20 Всего: 40 |
В документации на ALTER TABLE оно спрятано в слове table_options -------------------- Бонифаций. |
|||
|
||||
Dima50 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: нет Всего: 2 |
Большое спасибо за ответы.
Думаю вопрос исчерпан. |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |