DB2 EXISTS TRIGGER - PullRequest
       6

DB2 EXISTS TRIGGER

0 голосов
/ 22 июля 2011

Я использую DB2 и пишу версию с числом триггеров, но не могу преобразовать ее в существующую версию.Я буду использовать существующую версию из соображений производительности.Это вставка после триггера.

работает

   IF  (SELECT COUNT(*) FROM table where field=NEW.field ) = 0 THEN
    ---------
   END IF;--

не работает

   IF NOT EXISTS (SELECT * FROM table where field=NEW.field )  THEN
    ---------------------
    END IF;--

1 Ответ

0 голосов
/ 22 июля 2011

ПОПРОБУЙТЕ ЭТО:, КАК

НАЧАТЬ АТОМ, ЕСЛИ НЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ * ИЗ таблицы, где поле = NEW.field), ТО ВСТАВЬТЕ В ABC.table1 ("field1") ЗНАЧЕНИЯ (1100200);-> ЗДЕСЬ ДУМАЛЬНАЯ ВСТАВКА, которую Я ИСПОЛЬЗУЛ, ЧТОБЫ ОБЪЯСНИТЬ КОНЕЦ ЕСЛИ;END;

этот синтаксис для запуска этого кода

db2 -td @ ​​-f mysql.db2

Вам нужно сообщить DB2 отерминатор, который вы использовали !!

AND

- # SET TERMINATOR $ Это приведет к переводу терминатора в $. Чтобы изменить терминатор в CLP на лету, следующий синтаксис вернет его обратно.: - # УСТАНОВИТЬ ТЕРМИНАТОР

...