Mysql триггер синтаксическая ошибка 1064 - PullRequest
0 голосов
/ 15 июня 2011

У меня есть очень большой файл, который создает триггеры, которые я автоматически сгенерировал.Однако я не могу пройти строку 3.

Php версия 5.3.2 Mysql версия 14.14 Distrib 5.1.41

Вот первые несколько строк:

  1  delimiter $$
  2  -- CompanyTitleHolder
  3  -- Create INSERT event for CompanyTitleHolder
  4  CREATE OR REPLACE TRIGGER trigger_insert_CompanyTitleHolder AFTER INSERT ON CompanyTitleHolder 
  5  FOR EACH ROW
  6  BEGIN
  7
  8  IF(NEW.CompanyTitleHolderID <> '') OR (NEW.CompanyTitleHolderID IS NOT NULL) THEN
  9    CALL add_Audit (@UserName, "CompanyTitleHolder", "CompanyTitleHolderID", "--new record--", NEW.CompanyTitleHolderID);
 10  END IF;
 11 -- This goes on for quite a while
 ?? END;$$
 ?? delimiter ;

И это ошибка:

/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRIGGER trigger_insert_CompanyTitleHolder AFTER INSERT ON CompanyTitleHolder  F' at line 3 */

Я пытаюсь сделать таблицу аудита, используя этот метод и код в качестве моей базы

Ответы [ 3 ]

1 голос
/ 15 июня 2011

MySQL не поддерживает OR REPLACE: http://dev.mysql.com/doc/refman/5.6/en/create-trigger.html

1 голос
/ 15 июня 2011

Вы не можете CREATE OR REPLACE.

Попробуйте:

DROP TRIGGER IF EXISTS trigger_insert_CompanyTitleHolder;

CREATE TRIGGER trigger_insert_CompanyTitleHolder AFTER INSERT ON CompanyTitleHolder 
...
1 голос
/ 15 июня 2011

CREATE OR REPLACE не работает в MySQL, это Старая ошибка . Вам нужно будет сделать DROP TRIGGER IF EXISTS до вашего заявления CREATE TRIGGER.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...