powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Добавление записи
10 сообщений из 10, страница 1 из 1
Добавление записи
    #39392031
Nщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Есть таблица с первичным ключом и двумя полями. Не могу понять, как составить запрос на добавление записи в конец, не зная номер последней.
таблица: id(первичный ключ) num1 num2
имеющиеся записи: 1 aa bb
2 cc dd
3 ee ff
мне нужно добавить gg hh, но чтобы добавилось в конец и при этом с id 4(не вводя вручную).
Помогите, пожалуйста.
...
Рейтинг: 0 / 0
Добавление записи
    #39392043
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице нет ни начала, ни конца, нет порядка, таблица - это куча. Порядок появится только если в запросе указать сортировку, явно или неявно (например, используя группировку без сортировки).

Если же речь о том, что новой записи нужно присвоить значение больше текущего максимального, то достаточно поле id сделать автоинкрементным, и в запросе вообще не присваивать ему значения (или приисваивать NULL) - новое, бОльшее чем предыдущее, значение, сгенерируется автоматически. Правда, следует помнить, что при этом не гарантируется непрерывность (т.е. следующее присвоенное может отличаться от предыдущего более чем на единицу).
...
Рейтинг: 0 / 0
Добавление записи
    #39392069
Nщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, помогло и NULL и ''. Сначала сам пробовал оставить пустые кавычки, но запись вообще не добавлялась. После Вашего поста, перезапустил дэнвер и все заработало.
Но теперь новая проблема: если в таблице 10 записей и при удалении последней(т.е. 10-ой) при добавлении еще одной поле id присваивается не значение 10(снова), а 11. Разве таблица не смотрит на предыдущее значение первичного ключа?
...
Рейтинг: 0 / 0
Добавление записи
    #39392137
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NщРазве таблица не смотрит на предыдущее значение первичного ключа?Нет.

Nщтеперь новая проблемаЭто - не проблема. Сортируйте по этому полю - получите записи в порядке ввода в таблицу. Что ещё надо?
...
Рейтинг: 0 / 0
Добавление записи
    #39392142
Nщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaЭто - не проблема. Сортируйте по этому полю - получите записи в порядке ввода в таблицу. Что ещё надо?
Не понял, что Вы имеете ввиду
...
Рейтинг: 0 / 0
Добавление записи
    #39392199
Nщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересует то, как скинуть счетчик поля id на его последнее значение.
...
Рейтинг: 0 / 0
Добавление записи
    #39392426
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прежде чем спрашивать "как", сформулируйте чётко ответ на вопрос "зачем".
...
Рейтинг: 0 / 0
Добавление записи
    #39392461
Nщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем? Изучаю таблицы. Хочу понять, если делать подобие форума, то можно ли таким образом нумеровать все записи пользователя.
К примеру, есть поля id и text. Колонка id - primary key auto_increment. А text - сообщения пользователя на форуме.
Пользователь вводит 5 сообщений и они, получается, нумеруются счетчиком id. Далее пользователь удаляет последнее сообщение и добавляет одно. Но, последнее сообщение уже будет нумероваться не 5, а 6.
Хочу понять, можно ли сообщения нумеровать по порядку(если не учитывать, что пользователь может удалить сообщения из середины!).
...
Рейтинг: 0 / 0
Добавление записи
    #39392533
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
, primary key auto_increment выполняет одну функцию. А именно - используется для организации связей таблиц (данных в таблицах) и соответственно для работы подсистемы контроля целостности и непротиворечивости данных.

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

Так что если нужна непрерывная нумерация - заводите под неё ещё одно поле, на сей раз уже не с системными, а с пользовательскими данными, и программненько его там себе нумеруйте. Триггерами или ещё как, хранимками скажем... со всем сопутствующим геморроем, если среда исполнения не монопольна.
...
Рейтинг: 0 / 0
Добавление записи
    #39393615
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nщ,

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


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