2015-09-27 3 views
0

Я пытаюсь создать простой ddl-триггер в MySQL Workbench 6.3 для инструкции CREATE TABLE. Я получаю синтаксическую ошибку в строке 2. Является ли это правильным синтаксисом для MySQL? Если это так, любая идея, что я делаю неправильно. Это мой код:Синтаксис MySQL Workbench

CREATE TRIGGER DDL_TableAdd 
ON DATABASE 
FOR CREATE_TABLE 
AS 
BEGIN 
    'You do not have permission to add tables to this database.' 
END; 

ответ

0

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

В любом случае ваш ON DATABASE является недопустимым синтаксисом. См. the documentation.

+0

Спасибо вы. Это для проекта, над которым я работаю в школе градиента. Синтаксис, который я использовал, - это именно то, что написано в книге. Возможно, мне придется переписать его для каждой таблицы. – Selbona

0

Чтобы управлять разрешениями для базы данных и таблиц, вы можете использовать синтаксис GRANT.

https://dev.mysql.com/doc/refman/5.0/en/grant.html#grant-privileges

Вам не нужно создавать такие триггеры, как это обычно попадает в роли прав доступа, независимо от того, какую базу данных вы используете (например, MySQL, Oracle, DB2 и т.д.)