Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблемы с auto_increment'ом
 
 автор: LikeThat   (17.04.2007 в 14:10)   письмо автору
 
 

В базе данных есть таблица, в которую заносятся темы, при этом каждой из тем присваивается уникальный id (которому присвоено свойство auto_increment). Для проверки я создаю в нем несколько пробных тем. Устраняю выявленные недостатки. Создаю еще несколько пробных тем. Недостатков больше нет (ну, например, нет). Теперь я хочу убрать пробные темы. Удаляю пять ненужных записей. Все нормально. Создаю еще одну пробную тему, ей должен присвоиться id = 1 (как хотелось бы мне), но нет, на самом деле ей присваивается id = 6. Скрипт думает, что у меня 6 тем (на самом-то деле - одна), и начинает искать записи с id = 1,2,3,4,5,6. Естественно, он их не находит, и сообщает об ошибках. Вот вроде все в подробностях.
Нельзя ли как-то посмотреть и изменить значение поля с auto_increment'ом ?

--------------------------------------------------------------------------------

   
 
 автор: Trianon   (17.04.2007 в 14:12)   письмо автору
 
   для: LikeThat   (17.04.2007 в 14:10)
 

Задача auto_ncrement - создавать уникальные идентификаторы, а не нумеровать объекты.
Хотите нумеровать объекты - делайте это собственными средствами.

Как правило, нумерация объектов если и нужна - то лишь при выводе их на экран.
Нигде и никому более искусственные номера не нужны - тем более самому скрипту.
В смысле, хорошо написанный скрипт спроектирован так, что ему эти номера не нужны.

   
 
 автор: MIchail1982   (17.04.2007 в 15:06)   письмо автору
 
   для: Trianon   (17.04.2007 в 14:12)
 

Я так делал

ALTER TABLE phpbb_topics AUTO_INCREMENT = 3;

   
 
 автор: Trianon   (17.04.2007 в 15:11)   письмо автору
 
   для: MIchail1982   (17.04.2007 в 15:06)
 

Зря.

   
 
 автор: MIchail1982   (17.04.2007 в 15:23)   письмо автору
 
   для: Trianon   (17.04.2007 в 15:11)
 

а почему?
просто у меня была такая ситуация, нашёл СМС построенную на движке phpBB, но там был кривоватый инсталятор, не ставилась на существующий форум, т к гдето (ненашёл где) жёстко прописывались номер категории, форума и топика и чтоб впихнуть туда свои данные мне пришлось таблицу апдейтить так
UPDATE phpbb_topics set topic_id=topic_id+100;
UPDATE phpbb_topics set topic_id=topic_id-98;

после этого инкримент увеличивался на 100. в принципе терпимо, но не красиво
после этого я возвращал значение инкримента в нужное положение запросом из предидущего поста

   
 
 автор: Trianon   (17.04.2007 в 15:55)   письмо автору
 
   для: MIchail1982   (17.04.2007 в 15:23)
 

Вы же сами пишете, что инсталлятор был кривой.
Для того чтобы исправить ошибки в базе - все средства хороши.
Но только Вы же не станете писать скрипт, рабочий цикл которого - сперва понасовать ошибок, а затем их исправлять?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования