2016-04-06 2 views
0

Я следующий триггер, который был взят из Oracle тот, который работает:HSQL Trigger неожиданный маркер NEW

create trigger D_DOCUMENT before delete on DOCUMENT 
REFERENCING NEW AS newrow OLD AS oldrow 
FOR EACH ROW 
BEGIN ATOMIC 
    -- Further SQL 
END; 

Это в настоящее время работает в рамках HSQLDB. Мне нужно было добавить ключевое слово ATOMIC, однако реальная точка привязки - это строка REFERENCING NEW. Когда я запускаю это я получаю следующее исключение:

Caused by: org.hsqldb.HsqlException: unexpected token: NEW 

Глядя на документации, которую я действительно не могу понять, почему этот маркер является неожиданным, так что я запутался, почему это жалуется на «NEW». Комментируя строку, вы получаете сообщение об ошибке «двигаться вперед», однако, похоже, что-то не так с синтаксисом, или это ошибка, с которой я столкнулся.

У кого-нибудь есть этот тип триггера? Можете ли вы опубликовать образец триггера удаления, чтобы попробовать?

+0

Вы ожидаете, что hsqldb будет совместим с хранимыми процедурами продукта Oracle? – jarlh

+0

Нет, я этого не делаю, и поэтому я изменил его с оригинальной спецификации на HSQL. Это возможно с использованием последней версии HSQL, поэтому отсюда и вопрос. – PeterS

ответ

0

Нет НИКАКОЙ РУКИ в триггере DELETE. Существует только OLD ROW, который вот-вот будет удален.

Ошибка указывает на этот факт.

+0

Спасибо @fredt, вот ответ. – PeterS

Смежные вопросы