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

Вниз

Как красиво исполнить INSERT?   Найти похожие ветки 

 
Sergey13   (2002-02-15 10:46) [3]

Я делаю это так. В тригере делаю не безусловное заполнение из последовательности, а по условию
if :new.id is null then
select MySequence.Nextval into :new.id from dual;
end if;

А в приложении, если мне надо узнать CurVal, в строку инсерта явно забиваю NextVal типа
insert into MyTable(id,name) values(MySequence.Nextval,"Бла-бла")
потом читаю
select MySequence.CurVal from dual
и гарантировано получаю этот самый ID т.к. запрос к сиквенсу осуществляется в одной сессии. А для таюблицы по барабану где заполняется IDшник, главное что из одного сиквенса.

2Внук
Я не помню, тригер выполняется под СЕССИЕЙ ПОЛЬЗОВАТЕЛЯ(он ведь выполнятся с правами владельца) или как то автономно. Надо будет проверить, самому интересно стало. Если первое то ты полностью прав. Если второе то правильнее будет мой вариант, так как запрос nextval и curval гарантировано происходят в одной сессии, что при итенсивной вставке разными юзерами очень важно.
Правда твои "требования" по моему - чепуха
1. разные пользователи и не могут ОДНОВРЕМЕННО работать в одной сессии, а при указании схемы в запросе, пользователь значения не имеет, лишь бы права были.
2. а какая разница в сколько таблиц я вставляю данные из сиквенса? А может по другому и не сделаешь. Если допустим надо чтобы ключи не пересекались для 2(3,4,5...)таблиц.



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

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

Наверх





Память: 0.44 MB
Время: 0.006 c
1-43038
GFD
2002-02-26 15:15
2002.03.14
Не могу установить курсор мыши на нужную кнопку


1-43027
Michael C
2002-02-26 10:03
2002.03.14
Ув. мастера. Немогу сравнить два str значения...


4-43216
otari
2002-01-11 21:27
2002.03.14
помогите !!! двучвопросних человеку


14-43184
Alex
2002-01-24 22:02
2002.03.14
Добывание древнего корня


14-43167
Igor_thief
2002-01-30 17:38
2002.03.14
Если не слом, то почитаете.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский