|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.06.2012, 23:43 | #1 |
Форумчанин
Регистрация: 04.03.2012
Сообщений: 144
|
auto_increment
У меня таблица и первое поле Первичный ключ с автоинкрементом. Например я создал 7 записей в таблице и удалю последнюю 7-ую, а потом вставлю новую запись на место той 7-ой, выдается в автоинкременте 0 и дальнейшие вставки невозможны с автоинкрементом. Только числа обязательно приходится вставлять в поле с ключом, как избежать этого и как сделать чтобы дальше продолжало считать вставляемые записи если одну строку из них удалено уже было?
|
27.06.2012, 01:16 | #2 |
Пользователь
Регистрация: 17.01.2012
Сообщений: 14
|
Приведи подтверждающий тестовый пример
|
27.06.2012, 08:02 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
27.06.2012, 16:50 | #4 |
Форумчанин
Регистрация: 04.03.2012
Сообщений: 144
|
Вот база данных. После удаления 7 строки и вставки новой записи в неё инкремент в первом поле установил значение ноль, затем в картинке, которую я вставил в этот пост показано что я пробую добавить 8 запись, она не добавляется хоть значение поле number установлено в int(10) на второй картинке указано. Почему нельзя вставить ещё записи и как сделать чтобы продолжило считать 7,8,9,10 с 6 на котором закончило?
Последний раз редактировалось kilogram; 27.06.2012 в 16:56. |
27.06.2012, 17:26 | #5 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
||
27.06.2012, 17:30 | #6 |
Форумчанин
Регистрация: 04.03.2012
Сообщений: 144
|
Вот так, точно
Код:
Последний раз редактировалось Stilet; 27.06.2012 в 21:21. |
27.06.2012, 17:56 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Не понимаю актуальность таких дырок. Всегда есть удаления и дырки неизбежны. Если нужен порядковый номер, то добавляйте поле для этих целей и поддерживайте в нем целостную нумерацию. Автоинкрементность здесь не при делах. И представьте таблицу с сотнями тысяч записей и автоинкрементным ключем, массовые вставки и удаления. Тут не только запаришься ключ править (а если еще есть дочерние таблицы, то вообще триндец), а и поля с подержкой правильной нумерации, которые тоже в общем не нужны
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.06.2012 в 18:04. |
27.06.2012, 18:38 | #8 |
Форумчанин
Регистрация: 08.11.2009
Сообщений: 225
|
а что мешает сортировать по number?
|
28.06.2012, 09:54 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Аватар, +1
Цитата:
Перечитывать пост #7 (с) Аватар до тех пор, пока не прийдёт просветление и Вы не поймёте, что УНИКАЛЬНЫЙ ПЕРВИЧНЫЙ КЛЮЧ никакого отношения к нумерации записей не имеет. и может быть даже таким _3JC0L3U0P или даже таким: 4D36E96A-E325-11CE-BFC1-08002BE10318 Использовать первичный ключ в других целях (как-то для нумерации документов и т.п.) - НЕ РЕКОМЕНДУЕТСЯ! Изменять значение первичного ключа КАТЕГОРИЧЕСКИ НЕ РЕКОМЕНДУЕТСЯ! (я бы на месте разработчиков СУБД вообще запретил подобные модификации для автоинкриментных полей, хотя, конечно, тогда backup может пострадать...) Как правильно говорят - нужна нумерация - заводите дополнительное поле и нумеруйте его так, как Вам удобно! (можно с помощью триггеров и хранимых процедур, если ситуация позволяет, можно ручками). Ну и последнее. во многих СУБД при выборке данных можно написать такой запрос, который будет возвращать НОМЕР записи в выборке. Вот там будет 1, 2, 3, 4 и т.д. строго по порядку. Возможно, что это простое решение и подойдёт в вашем случае. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MySQL, dbExpress, auto_increment | davidoff_pk | БД в Delphi | 5 | 25.01.2012 11:01 |
Не работает auto_increment | SwiP | SQL, базы данных | 4 | 06.05.2011 20:41 |
Зачем присваивают значение AUTO_INCREMENT ? | SuBwooFer | SQL, базы данных | 2 | 11.11.2010 18:01 |
Не работает auto_increment | insense | PHP | 14 | 18.06.2010 19:18 |
Auto_Increment | D-Snaker | PHP | 1 | 21.08.2009 20:34 |