Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

Как узнать значение autoincrement поля в IB5   Найти похожие ветки 

 
Nikola62   (2003-01-29 00:51) [0]

В таблице имеется поле с автоувеличением (через триггер). Как после добавления новой записи в таблицу узнать значение этого поля?


 
Наталия   (2003-01-29 05:44) [1]

Можно узнать ДО добавления записи в таблицу, а затем добавить запись с этим значением.


 
AlexSerp   (2003-01-29 09:57) [2]

Сделать запрос поиска записи в таблице уникальному ключу, а там и взять значение нужного поля.
Если нет уникального поля, то можно сделать запрос по нескольким полям, которые будут однозначно указывать на эту запись.

Саня


 
Anatoly Podgoretsky   (2003-01-29 10:04) [3]

AlexSerp © (29.01.03 09:57)
Не по нескольким поля, а по всем.

Nikola62 (29.01.03 00:51)
Если тебе так нужен этот номер в тот момент, то читай Наталия © (29.01.03 05:44), у тебя в данном случае неверный дизайн.


 
Johnmen   (2003-01-29 10:19) [4]

Еще одна разновидность решения - вставлять только с помощью ХП, которая будет возвращать необходимое значение...


 
AlexSerp   (2003-01-29 10:31) [5]

Anatoly Podgoretsky © (29.01.03 10:04)
Согласен.

Саня


 
passm   (2003-01-29 10:37) [6]

Anatoly Podgoretsky © (29.01.03 10:04)> Не обязательно неверный дизайн.
Если сидит куча пользователей и набирают документы (приход, расход...) вариант с поиском по всем полям в данном случае не подходит, поскольку теоретически возможны совпадения.
Здесь позвольте отойти от IB и генераторов. Мне понравилось решение в DB2. Имеется функция GENERATE_UNIQUE(), которая всегда возвращает уникальное значение типа CHARACTER(13). Для генерирования результата берется CURRENT TIMESTAMP, номер сесси пользователя и немного случайной информации. Т.о. при создании нового документа беру:
SELECT NUM.NUM
FROM (VALUES(GENERATE_UNIQUE())) AS NUM(NUM)
И идентификатор для уникального значения и дальнейшего поиска по нему готов.
К чему это я: может, можно написать подобную UDF для IB и использовать подобный механизм в таблицах, где поиск по неключевым полям не гарантирован.


 
JibSkeart   (2003-01-29 10:43) [7]

А можно еще из таблички брать максимальный ключ
а новый ключ инкременировать на 1


 
passm   (2003-01-29 10:52) [8]

JibSkeart © (29.01.03 10:43)> Только в однопользовательском режиме.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
4-38646
cher_gvf
2003-01-03 11:37
2003.02.13
CreateProcess


14-38499
Evgeny
2003-01-26 10:58
2003.02.13
функции в DLL


1-38153
AlexanderSK
2003-02-04 12:50
2003.02.13
Разбиение приложение на модули


1-38363
Andrey V.
2003-01-31 09:30
2003.02.13
Пробелы в FreeReport


14-38476
Nikolay M.
2003-01-29 13:59
2003.02.13
Где взять квариру? :(





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский