powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / id (auto_increment)
17 сообщений из 17, страница 1 из 1
id (auto_increment)
    #32405973
Aleksis-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть уже таблица,хочу создать поле новое id (auto_increment) но поле не создается(ems)пишет duplicate entry "127" for key1,в чем дело?
...
Рейтинг: 0 / 0
id (auto_increment)
    #32406007
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не могли бы вы опубликовать ответ сервера на команды

describe вашатаблица

show index from вашатаблица

а также команду, которой вы пытаетесь добавить поле.

и что такое ems?
...
Рейтинг: 0 / 0
id (auto_increment)
    #32406032
Aleksis-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ems--EMS MySQL Manager я им столбец создаю,

show index from таб----пусто,

Field TypeNullKey Default Extra
fam varchar(20)
name varchar(20)
otch varchar(20)
tel varchar(10)
otdel varchar(40)
doljnost varchar(150)
email varchar(20) YES null
...
Рейтинг: 0 / 0
id (auto_increment)
    #32406114
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзя ли увидеть команду, которую испускает этот умс, чтобы создать поле?
...
Рейтинг: 0 / 0
id (auto_increment)
    #32406115
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
умс=ems
...
Рейтинг: 0 / 0
id (auto_increment)
    #32406254
Aleksis-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALTER TABLE `sot` ADD COLUMN `id` tinyint(4) zerofill default '0' auto_increment UNIQUE FIRST
результат : "Duplicate entry '0255' for key 1"
...
Рейтинг: 0 / 0
id (auto_increment)
    #32406296
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, все ясно. в таблице больше записей, чем 127 и больше чем 255. а тиниинт не может хранить записей больше, чем эти числа. тип надо выбрать хотябы smallint, а если и этого не хватит - еще побольше.

подробности о том, сколько могут хранить разные инты - здесь
...
Рейтинг: 0 / 0
id (auto_increment)
    #32406306
Aleksis-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин ,черт вот черт как обидно вот блин на голом месте,не могу успакоится!!!!
...
Рейтинг: 0 / 0
id (auto_increment)
    #32407110
Spectator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня тоже вопрос:
Есть таблица, у неё индесное поле с автоинкрементом, при создании записей значение в этом поле постоянно увеличивается даже если есть свободные незанятые индексы, как можно перенумеровать эти поля в таблице что бы не было незанятых индексов?
...
Рейтинг: 0 / 0
id (auto_increment)
    #32407202
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spectator,\r
у новичков таких вопросов много (тынц, например, еще поиском можно миллион найти).\r
\r
имхо, ты не должен этого хотеть (с)\r
\r
ответа я не знаю.
...
Рейтинг: 0 / 0
id (auto_increment)
    #32407342
Spectator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто если постоянно добавлять и удалять записи то эти индексы закончатся в итоге, их же не бесконечно, и что тогда делать?
...
Рейтинг: 0 / 0
id (auto_increment)
    #32407356
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spectator
=) если нормальные типы данных будешь использовать - не закончаться.
int unsigned not null auto_increment на пару десятков лет тебе хватит.
...
Рейтинг: 0 / 0
id (auto_increment)
    #32892002
andruid00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макс М.Spectator
=) если нормальные типы данных будешь использовать - не закончаться.
int unsigned not null auto_increment на пару десятков лет тебе хватит.

Несерьезный ответ.
Если есть реальная задача: записей в таблице не будет много (полсотни максимум), но они будут часто удаляться и добавляться. Зачем для этого делать поля INT. Может, тогда все поля сразу BIGINT-ами делать? Чтоб не думать.
Как оказалось в процессе отладки, в поле TINYINT значение auto_increment быстро достигло 255. И, несмотря на то, что в таблице было всего несколько записей (со значениями ID не по порядку) , новый INSERT сделать было невозможно.
После насильного присвоения параметру auto_increment = 1 он автоматически выставился по записи с максимальным ID и стал равен 141 (как и должно быть). После вставки новой записи её ID оказался равен 255. Соответственно, больше записей опять нельзя было вставлять. Парадокс какой-то.

Бездумно ставить везде INT-ы и BIGINT-ы я не собираюсь.
Это не решение проблемы, так как и в них auto_increment может упереться в максимум в больших динамичных таблицах.
И как с этим бороться?
...
Рейтинг: 0 / 0
id (auto_increment)
    #32892586
Welly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andruid00
Бездумно ставить везде INT-ы и BIGINT-ы я не собираюсь.
Это не решение проблемы, так как и в них auto_increment может упереться в максимум в больших динамичных таблицах.
И как с этим бороться?
Ставить BIGINT'ы там, где это действительно надо. Чтобы его переполнить, сами посчитайте сколько вам понадобится времени....
...
Рейтинг: 0 / 0
id (auto_increment)
    #32892663
andruid00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Welly
Ставить BIGINT'ы там, где это действительно надо. Чтобы его переполнить, сами посчитайте сколько вам понадобится времени....

Я описал вполне реальную задачу. Получается, для неё нужно ставить INT?

А если у меня уже INT и в таблице постоянно делается DELETE/INSERT? Получается, переполнение параметра auto_increment - вопрос времени?
Это не есть хорошо, так как система, написанная под заказ, может дать сбой например, через несколько лет, когда заполнится INT. Ставить везде BIGINT?

Выходит, TINYINT ни на что не годится? Однодневка?
...
Рейтинг: 0 / 0
id (auto_increment)
    #32893256
Mongoose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andruid00Это не есть хорошо, так как система, написанная под заказ, может дать сбой например, через несколько лет, когда заполнится INT.
Use calc.exe
Предел Int - 4294967295 ... делим на 365, делим на 100 000 (изменений в день) и получаем ~117 ... лет.
Собственно к этому времени заказчик наверняка уже поменяет то, что делал ты, да и не к кому будет уже претензии предъявлять.
...
Рейтинг: 0 / 0
id (auto_increment)
    #32893665
Welly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andruid00[quot Welly]
Я описал вполне реальную задачу. Получается, для неё нужно ставить INT?
<skipped>
Выходит, TINYINT ни на что не годится? Однодневка?
Ну сбрасывайте тогда после каждого DELETE значение автоинкрементного поля в 0, если уж сильно хочется tinyint использовать. Хотя тогда вообще непонятно, зачем вам это поле нужно...


TINYINT следует применять только для малых значений, например, возраст человека, количество детей, класс, в который ходит ребенок и т.д., но никак не для автоинкрементных полей.

А для вашей задачи, которую вы, кстати, не описали, надо считать, хватит ли вам INT, потому что иногда встречаются задачи, когда его реально не хватает. Но BIGINT избавит вас и от подсчетов, и гарантированно от возможного переполнения.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / id (auto_increment)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]