2013-04-27 2 views
0

Помощь с запуском MySQL? Я пытаюсь создать при удалении триггера вставки в моем SQL ... Я до сих пор:Ошибка синтаксиса в MySQL delete trigger

CREATE 
[DEFINER = {user| CURRENT_USER }] 
TRIGGER ProjectDoneTrigger After Delete 
ON Project FOR EACH ROW insert into projectover values(old.projectID,old.name, 
old.Department,old.MaxHours, old.StartDate, 
old.EndDate); 

Однако MySQL сообщит о синтаксической ошибке на первой [в строке 2 ... что это правильный путь сделать эту линию?

+0

Это всего лишь синтаксис, который показывает все возможные ключевые слова, которые могут использоваться в инструкции CREATE TRIGGER. Вы можете написать код вручную, но также можете создавать/редактировать/создавать триггер с помощью редактора объектов GUI, например. в free express [dbForge Studio for MySQL] (http://www.devart.com/dbforge/mysql/studio/), это поможет вам создать триггер и понять синтаксис. – Devart

ответ

0

Чтение подробно Справочное руководство по MySQL, особенно Typographical and Syntax Conventions раздела (начиная с линии В описаниях синтаксиса, квадратные скобки («[» и «]») указывают на необязательные слова или положения.). Проверьте Справочное руководство, какие части со второй строки вашего кода вам действительно нужны. Вы можете изменить свой код (если вы хотите, TRIGGER выписки по умолчанию):

CREATE TRIGGER ProjectDoneTrigger AFTER DELETE ON Project 
FOR EACH ROW 
INSERT INTO projectover 
VALUES (old.projectID,old.name, old.Department,old.MaxHours, 
old.StartDate, old.EndDate); 

Больше информации о синтаксисе TRIGGER, проверьте Using Triggers раздел справочного руководства.

0

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

DEFINER часть только полезно, если вы хотите, чтобы указать учетную запись MySQL, которые будут использоваться при проверке прав доступа во время активации триггера. Я бы сказал, что это продвинутая тема, и ее следует оставить без внимания, если вы не знаете, что она вам нужна.

Если хотите, пожалуйста, то, что DEFINER делает более подробно, оно доступно в CREATE TRIGGER manual.

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