Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 1

Синтаксис триггера

27.05.2010, 22:54. Показов 2829. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CREATE TABLE test
(
        test_number NUMBER(1),
        test_varchar VARCHAR(2)
)
/
CREATE OR REPLACE TRIGGER before_insert
before INSERT ON test
REFERENCING
OLD AS old
NEW AS NEW
FOR each ROW
DECLARE
        x NUMBER(5);
BEGIN
    SELECT NVL(MAX(test_number),0)+1
          INTO x
      FROM test;
    NEW.test_number := x;
END;
/
INSERT INTO test
VALUES(0, 'a')
/
oracle ругается на триггер, что не объявлен new.test_number???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2010, 22:54
Ответы с готовыми решениями:

Создание триггера
Триггер создается почему-то с ошибками компиляции. Решил совсем упростить задачку и сделал таблицу из двух полей, последовательность и...

Создание триггера
Здравствуйте, имеется приложение на .net, в котором в при регистрации пользователя добавляются в таблицу БД Oracle. Теперь мне...

Создание триггера
Есть триггер: CREATE OR REPLACE TRIGGER TRG_AIUD_CONTRACT AFTER INSERT OR UPDATE OR DELETE ON CONTRACT FOR EACH ROW ...

2
TSergey
30.05.2010, 09:00
:new.test_number := x;

Но заполнять поле MAXом, как правило, не есть гуд!!! Лучше пользоваться генератором.
0 / 0 / 2
Регистрация: 08.04.2009
Сообщений: 271
06.06.2010, 17:42
Здесь ограничение, которое называется
'Мутирующая таблица' это стандартное ограничение для Oracle :
в СТРОКОВОМ триггере нельзя обращаться к таблице изменяемой в текущий
момент, а в операторном можно. Однако мысль предыдущего автора
правильна : 'Но заполнять поле MAXом, как правило, не есть гуд!!!
Лучше пользоваться генератором.'
Имеется в виду последовательность, SEQUENCE.
Однако и с последовательностями имеется одна проблема -
это дыры в номерации. Если они допустимы
Oracle 11 SQL
1
2
3
4
5
6
7
8
CREATE SEQUENCE sq_1;
 
BEGIN
 IF :NEW.test_number IS NULL THEN
  SELECT sq_1.NEXTVAL INTO :NEW.test_number
  FROM sys.dual;
 END IF;
END;
Кстати ботва 'REFERENCINGOLD AS old NEW AS new' вовсе не нужна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2010, 17:42
Помогаю со студенческими работами здесь

Вызов процедуры из триггера
Уважаемые знатоки, помогите! В программировании - нуб полнейший. Практикуюсь решая задачки, которые мне придумывают товарищи. Есть...

Запретить действие триггера
как запретить выполнение триггеров для определенной таблицы

Написание триггера и мутирующая таблица
Здравствуйте! Sql я изучаю совсем недавно, так что время от времени возникают трудности... В общем, у меня есть функция, которая...

Срабатывание триггера дочерней таблицы
Добрый день! Есть 2 связанные таблицы: alter table Table2 add constraint Table2_Table1 foreign key (KEY) references Table1 (KEY) ...

Как достать инфу из триггера?
Доброе времени суток. Народ, подскажите пожалуйста, как достать ту информацию, которую триггер заносит в таблицу БД (SQL), если структура...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru