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

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

Samuel

Гость
#1
Здравствуйте.
Есть таблица, в которой поле "ID" является первичным ключом и автоинкрементируется. Как при добавлении новой записи в эту таблицу узнать ID, который будет у этой строки ?
 

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#3
После вставки делай запрос к таблице: SELECT max(ID) FROM MY_TABLE.
Полученное значение - и будет твой IDшник.
Сакс прав, не обязательно. Ведь может присвоится и какой-нить из свободных, если были удаления.
Что бы знать точно надо знать какая бд и как вставляют=)
Samuel
А еще есть LAST_INSERT_ID() в Mysql и ей подобные в других бд..
 

Over

Well-Known Member
04.07.2007
116
0
33
РБ. Минская обл.
#4
Если СУБД нормальная, и есть такой объект, как счётчик, и у него делается автоинкремент, тогда всё будет работать нормально.
А если при вставке присваивается не ID+1, а какой-нибудь свободный, тогда нужно настроить гарантированный автоинкремент, или использовать другую СУБД.
 

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#5
тогда нужно настроить гарантированный автоинкремент, или использовать другую СУБД.
Не поверите, но очень часто так бывает, что напорядок лучше заполнять дырки в счетчике, чем наращивать его. А вывод - менять субд вообще ересь.
 
?

????

Гость
#10
sax_ol
смысл есть, но ты не можешь его уловить. а жаль )
 
S

Samuel

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