Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Направления программирования
>
Web
>
Базы данных и Web
> Тема:
auto_increment
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: auto_increment (Прочитано 14855 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Шнибл
Помогающий
Offline
Пол:
auto_increment
«
:
06-05-2006 08:34 »
Есть такой идентификатор в таблице: "id tinyint unsigned not null auto_increment primary key"
было 10 записей, удляем все, кроме 5. Добавляем новую, mySQL присваивает ей id = 11.
Как такие вещи лечатся ? посмотрел Mysql administratorom действительно в таблице есть свойство Auto Increment которе хранить значение (в нашем случае 11), можно как нибуть это значение поправить запросом ?
Еще маленький вопрос, есть ли в mySQL логический тип данный, нашел "Bit" и "Bool" но там же и приписка была, что это синонимы Tinyint а значит память отводится 1 байт, либо -127..128 либо 0..255. ?
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: auto_increment
«
Ответ #1 :
06-05-2006 08:58 »
Шнибл
, это нормальное поведение. Следующий номер хранится в описании таблицы и может только расти. Руками поправить можно (ALTER TABLE), но это не правильно.
Если у тебя в таблице один столбец с логическим значением, то экономить нечего - память меньше чем по байту выделяться не может. Если значений много, то можно использовать тип SET (читай мануал) или использовать числа как битовые массивы.
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Шнибл
Помогающий
Offline
Пол:
Re: auto_increment
«
Ответ #2 :
06-05-2006 09:40 »
По поводу логических типов, спасибо разъяснили ситуацию.
По поводу alter table не могли бы привести пример, такая штука - "alter table ХХХ alter id set default ХХ" - не пашет.
"ALTER TABLE Users AUTO_INCREMENT = 1" тоже..
единственно что получилось сбросить счетчик на 0, запросом: "ALTER TABLE Users CHANGE id id TINYINT NOT NULL"
«
Последнее редактирование: 06-05-2006 10:25 от Шнибл
»
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: auto_increment
«
Ответ #3 :
06-05-2006 10:35 »
Шнибл
, зачем гадать - мануал для чего?
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Шнибл
Помогающий
Offline
Пол:
Re: auto_increment
«
Ответ #4 :
06-05-2006 10:59 »
Получается ALTER TABLE Users AUTO_INCREMENT = 1 рабочий запрос. Просто, те запросы, когда AUTO_INCREMENT ставится значение меньше чем уже существут записи в таблице, то такие запросы игнорируется.
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: auto_increment
«
Ответ #5 :
06-05-2006 11:26 »
Шнибл
, логично. Такие возможности были посчитаны как баги и запрещены еще в древних версиях 3.23, а до этого значение заворачивалось (переполнение).
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Направления программирования
>
Web
>
Базы данных и Web
> Тема:
auto_increment
Загружается...