Проблемы с синтаксисом триггера MySQL - If Statement & GO

0

Я знаю, что, вероятно, я должен прочитать, как сначала войти в синтаксис mysql, но я не уверен в этом. Поэтому я хотел попросить о помощи здесь.

Это был триггер с сервера sql-, и мне нужно передать его в mysql. Я сделал изменения на нескольких строках, но сейчас застрял.

Существует синтаксическая ошибка с оператором if-. "неожиданный" IF "(проверенный случай, когда... но также получил ошибку), а еще один - перед командой Alter- table-command в конце. "GO недействительный ввод на этом этапе"

CREATE TRIGGER 
    TEST_TRIGGER

    AFTER insert
ON
    TEST_TABLE

For each row

BEGIN

    SET v_ANZAHL = (select COUNT(1) from inserted),

    IF v_ANZAHL = 1 then 

    DELETE FROM 
        filter_group
    WHERE 
    filter_groups_id IN
        (select FilterID from filter_groups_view);

INSERT INTO filter_group
           (filter_groups_id
           ,group_id)

SELECT
    FilterID,
    GruppeID

FROM
    filter_groups_view

END

GO

ALTER TABLE TEST_TABLE ENABLE TRIGGER TEST_TRIGGER

GO
  • 1
    Опечатка: вы должны иметь ; в конце SET линии, а не , .
  • 0
    Вы правы! Smh после изменения mysql предупреждает о пропущенной точке с запятой. До этого с запятой не было ошибок. Это довольно запутанно.
Показать ещё 1 комментарий
Теги:

1 ответ

0

Существует несколько ошибок:

  • изменение разделителя до и после
  • немного; отсутствует
  • конец, если отсутствует (не знаю, если он в нужном месте сейчас)

Вот код, скорректированный, но непроверенный из-за недостающих таблиц и содержимого:

DELIMITER $$
CREATE TRIGGER 
    TEST_TRIGGER

    AFTER insert
ON
    TEST_TABLE

For each row

BEGIN

    SET v_ANZAHL = (select COUNT(1) from inserted);

    IF v_ANZAHL = 1 then 

    DELETE FROM 
        filter_group
    WHERE 
    filter_groups_id IN
        (select FilterID from filter_groups_view);

INSERT INTO filter_group
           (filter_groups_id
           ,group_id)
SELECT
    FilterID,
    GruppeID

FROM
    filter_groups_view;

END IF;
END $$

DELIMITER ;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню