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

Вниз

Умный триггер в InterBase   Найти похожие ветки 

 
RomanH ©   (2006-04-07 15:30) [0]

Здраствуйте мастера. Существует 2 таблицы Men и TMen
MenID  MFam |       TMenID  TMFam TMAction
00001  AAAA  |       10001    BBBBB        1

Пишу такой триггер чтобы добавить запись в таблицу Men необходимо сначало проверить TMenID, если он меньше 10 000,
то New.MenID=Gen_ID(Gen_Men,1):

create trigger bef_ins_men for men
active before insert
as
declare variable men_ID integer;
declare variable Men_action integer;
begin
select TMenID,TMAction from MenT  where TMenID<10000 into :men_ID,Men_action;
if (:men_id<10000) then new.menid=gen_id(gen_men,1);
end

Ни как не соображу


 
Johnmen ©   (2006-04-07 16:24) [1]

Тут соображать надо после прочтения документации...


 
Desdechado ©   (2006-04-07 16:25) [2]

1. Зачем выбирать 2 поля, чтоб сравнивать потом одно?
2. По условию может оказаться много записей, то будет ошибка multiple rows in singleton select. Может, нужно проверять Max(TMenID) ?
3. if (:men_id<10000) - здесь двоеточие не надо
4. into :men_ID,Men_action; - а вот здесь нужно к каждой переменной

PS from MenT- круто завернул



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

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

Наверх





Память: 0.44 MB
Время: 0.01 c
2-1147433954
Ламот
2006-05-12 15:39
2006.05.28
Запуск/закрытие стороннего приложения


15-1146750860
acL
2006-05-04 17:54
2006.05.28
Как установить игру


9-1130581983
VolanD666
2005-10-29 14:33
2006.05.28
Octree. Как сохранить в файл?


2-1147329642
zorik
2006-05-11 10:40
2006.05.28
Как выделить в Екселе лист по его названию?


15-1146591343
Sergey Masloff
2006-05-02 21:35
2006.05.28
Крамольная мысль - а оно вообще надо? Про раздел начинающим да





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