• Новый бот-ассистент на форуме Codeby

    Теперь на форуме работает ИИ-помощник @bot_cdb — твой технический ассистент по информационной безопасности. Просто упомяни @bot_cdb в любой теме, и получишь быстрый ответ на вопросы по CVE, инструментам, техникам атак и защиты. Бот анализирует весь тред перед ответом, проверяет актуальность данных и может предложить дополнительную помощь. Особенно полезен для проверки технических деталей, поиска документации и быстрых консультаций по пентесту, малвари, форензике и другим областям ИБ.

Определение Id при добавлении строки

  • Автор темы Автор темы Samuel
  • Дата начала Дата начала
S

Samuel

Здравствуйте.
Есть таблица, в которой поле "ID" является первичным ключом и автоинкрементируется. Как при добавлении новой записи в эту таблицу узнать ID, который будет у этой строки ?
 
После вставки делай запрос к таблице: SELECT max(ID) FROM MY_TABLE.
Полученное значение - и будет твой IDшник.
 
После вставки делай запрос к таблице: SELECT max(ID) FROM MY_TABLE.
Полученное значение - и будет твой IDшник.
Сакс прав, не обязательно. Ведь может присвоится и какой-нить из свободных, если были удаления.
Что бы знать точно надо знать какая бд и как вставляют=)
Samuel
А еще есть LAST_INSERT_ID() в Mysql и ей подобные в других бд..
 
Если СУБД нормальная, и есть такой объект, как счётчик, и у него делается автоинкремент, тогда всё будет работать нормально.
А если при вставке присваивается не ID+1, а какой-нибудь свободный, тогда нужно настроить гарантированный автоинкремент, или использовать другую СУБД.
 
тогда нужно настроить гарантированный автоинкремент, или использовать другую СУБД.
Не поверите, но очень часто так бывает, что напорядок лучше заполнять дырки в счетчике, чем наращивать его. А вывод - менять субд вообще ересь.
 
что за СУБД?

часто достаточно использовать конструкцию
[sql]insert .... returning ...[/sql]

глянь тут
 
sax_ol
смысл есть, но ты не можешь его уловить. а жаль )
 
Ну СУБД MS SQL Server.
Разобрался. В пределах хранимки лучше использовать функцию SCOPE_IDENTITY(), которая и вернет нужный ID.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы