Супер-модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
1 | |
Триггеры20.12.2007, 11:41. Показов 3483. Ответов 2
Метки нет (Все метки)
Народ, как наваять триггер на on insert, чтобы производилась копирование rowid в одно из полей той же таблицы....
0
|
20.12.2007, 11:41 | |
Ответы с готовыми решениями:
2
Триггеры триггеры Триггеры Триггеры |
Администратор
83814 / 52399 / 244
Регистрация: 10.04.2006
Сообщений: 13,443
|
|
20.12.2007, 12:33 | 2 |
Но зачем?
0
|
Супер-модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
20.12.2007, 13:18 [ТС] | 3 |
блажь такая выходит, просто таблицу мне решили раздуть до 250 полей, это уже меня возмутило, а переделывать лень, вот и завязываюсь на rowid, чтобы в трех таблицах он был идентичный... но это я уже расковырял... Код
[SIZE=2][COLOR=#0000f0][SIZE=2][COLOR=#0000f0]CREATE[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]OR[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]REPLACE[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]TRIGGER[/COLOR][/SIZE][SIZE=2][COLOR=#000000] AFILL[/COLOR] [/SIZE][SIZE=2][COLOR=#0000f0]AFTER[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]INSERT ON[/COLOR][/SIZE][SIZE=2][COLOR=#000000] NARTEST[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0].[/COLOR][/SIZE][SIZE=2][COLOR=#808000]N_NAR_INF [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]REFERENCING[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]NEW[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]AS[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]NEW[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]OLD[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]AS[/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#0000f0]OLD DECLARE [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]type[/COLOR][/SIZE][SIZE=2] curtp [/SIZE][SIZE=2][COLOR=#0000f0]is[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]REF[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]CURSOR; [/COLOR][/SIZE][SIZE=2]rd1 [/SIZE][SIZE=2][COLOR=#808000]n_nar_inf[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0].[/COLOR][/SIZE][SIZE=2]rid[/SIZE][SIZE=2][COLOR=#0000f0]%TYPE; [/COLOR][/SIZE][SIZE=2]rd2 [/SIZE][SIZE=2][COLOR=#808000]n_nar_inf[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0].[/COLOR][/SIZE][SIZE=2]cnt[/SIZE][SIZE=2][COLOR=#0000f0]%TYPE; [/COLOR][/SIZE][SIZE=2]cur1 curtp[/SIZE][SIZE=2][COLOR=#0000f0]; BEGIN [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]open[/COLOR][/SIZE][SIZE=2] cur1 [/SIZE][SIZE=2][COLOR=#0000f0]for[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]select[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]rowid[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]from[/COLOR][/SIZE][SIZE=2][COLOR=#808000]n_nar_inf[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]where[/COLOR][/SIZE][SIZE=2] rid [/SIZE][SIZE=2][COLOR=#0000f0]=[/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]'NNNNNNNNNNNNNNNNNN'[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]; [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]fetch[/COLOR][/SIZE][SIZE=2] cur1 [/SIZE][SIZE=2][COLOR=#0000f0]into[/COLOR][/SIZE][SIZE=2] rd1[/SIZE][SIZE=2][COLOR=#0000f0]; [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]close[/COLOR][/SIZE][SIZE=2] cur1[/SIZE][SIZE=2][COLOR=#0000f0]; [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]open[/COLOR][/SIZE][SIZE=2] cur1 [/SIZE][SIZE=2][COLOR=#0000f0]for[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]select[/COLOR][/SIZE][SIZE=2] lpad[/SIZE][SIZE=2][COLOR=#0000f0]([/COLOR][/SIZE][SIZE=2]max[/SIZE][SIZE=2][COLOR=#0000f0]([/COLOR][/SIZE][SIZE=2]cnt[/SIZE][SIZE=2][COLOR=#0000f0])[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]+[/COLOR][/SIZE][SIZE=2][COLOR=#800000]1[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0],[/COLOR][/SIZE][SIZE=2][COLOR=#800000]9[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0],[/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]'0'[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0])[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]as[/COLOR][/SIZE][SIZE=2] maxv [/SIZE][SIZE=2][COLOR=#0000f0]from[/COLOR][/SIZE][SIZE=2][COLOR=#808000]n_nar_inf[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]; [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]fetch[/COLOR][/SIZE][SIZE=2] cur1 [/SIZE][SIZE=2][COLOR=#0000f0]into[/COLOR][/SIZE][SIZE=2] rd2[/SIZE][SIZE=2][COLOR=#0000f0]; [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]close[/COLOR][/SIZE][SIZE=2] cur1[/SIZE][SIZE=2][COLOR=#0000f0]; [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]update[/COLOR][/SIZE][SIZE=2][COLOR=#808000]n_nar_inf[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]set[/COLOR][/SIZE][SIZE=2] rid [/SIZE][SIZE=2][COLOR=#0000f0]=[/COLOR][/SIZE][SIZE=2] rd1[/SIZE][SIZE=2][COLOR=#0000f0],[/COLOR][/SIZE][SIZE=2] cnt [/SIZE][SIZE=2][COLOR=#0000f0]=[/COLOR][/SIZE][SIZE=2] rd2 [/SIZE][SIZE=2][COLOR=#0000f0]where[/COLOR][/SIZE][SIZE=2] rid [/SIZE][SIZE=2][COLOR=#0000f0]=[/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]'NNNNNNNNNNNNNNNNNN'[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]; [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]insert[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]into[/COLOR][/SIZE][SIZE=2][COLOR=#808000]n_nar_st[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]([/COLOR][/SIZE][SIZE=2]rid[/SIZE][SIZE=2][COLOR=#0000f0],[/COLOR][/SIZE][SIZE=2] cnt[/SIZE][SIZE=2][COLOR=#0000f0])[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]values([/COLOR][/SIZE][SIZE=2]rd1[/SIZE][SIZE=2][COLOR=#0000f0],[/COLOR][/SIZE][SIZE=2] rd2[/SIZE][SIZE=2][COLOR=#0000f0]); [/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]insert[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]into[/COLOR][/SIZE][SIZE=2][COLOR=#808000]n_nar_tech[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]([/COLOR][/SIZE][SIZE=2]rid[/SIZE][SIZE=2][COLOR=#0000f0],[/COLOR][/SIZE][SIZE=2] cnt[/SIZE][SIZE=2][COLOR=#0000f0])[/COLOR][/SIZE][SIZE=2][COLOR=#0000f0]values([/COLOR][/SIZE][SIZE=2]rd1[/SIZE][SIZE=2][COLOR=#0000f0],[/COLOR][/SIZE][SIZE=2] rd2[/SIZE][SIZE=2][COLOR=#0000f0]); END; [/COLOR][/SIZE][/COLOR][/SIZE]
0
|
20.12.2007, 13:18 | |
20.12.2007, 13:18 | |
Помогаю со студенческими работами здесь
3
Триггеры триггеры и sys Функции и триггеры Триггеры в Oracle Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |