Mysql 数据库上限制drop/alter/create语法错误的SQL触发器,尽管有以下教程,on在此位置无效?

Mysql 数据库上限制drop/alter/create语法错误的SQL触发器,尽管有以下教程,on在此位置无效?,mysql,sql,debugging,triggers,syntax-error,Mysql,Sql,Debugging,Triggers,Syntax Error,处理数据库的安全DDL触发器并希望限制非管理员创建/删除数据库,我创建了此触发器,并将其放在数据库脚本中所有其他代码(创建表等)的下面 CREATE TRIGGER alert_table ON DATABASE FOR CREATE_TABLE, DROP_TABLE, ALTER_TABLE AS BEGIN IF IS_MEMBER ('admin') = 0 BEGIN PRINT 'Please contact your Database Admin' ROLLBACK

处理数据库的安全DDL触发器并希望限制非管理员创建/删除数据库,我创建了此触发器,并将其放在数据库脚本中所有其他代码(创建表等)的下面

CREATE TRIGGER alert_table

ON DATABASE

FOR CREATE_TABLE, DROP_TABLE, ALTER_TABLE

AS

BEGIN

IF IS_MEMBER ('admin') = 0

BEGIN

PRINT 'Please contact your Database Admin'

ROLLBACK TRANSACTION;

END

END

GO

CREATE
注: 用户“admin”@“localhost”


它说“ON在那个位置无效,期望:在之前或之后”,类似于“END”。谢谢

在使用mysql时,您遵循了Microsoft SQL Server(通常缩写为mssql Server)的教程

Mssql服务器的语法与您的问题中的语法一致


Mysql的语法不同,根本没有DDL触发器,因此您不能使用触发器来处理表创建事件。

您好,谢谢,是的,现在我意识到我自己的愚蠢,我实际上也在使用MariaDB,所以这允许我所需的吗?不,不允许。Mariadb是mysql的分支,因此语法和功能与mysql非常相似。顺便说一句,mysql和mariadb都有详细的在线手册,所以如果您对语法有疑问,请先检查一下。