CREATE TRIGGER safety_drop ON DATABASE FOR DROP_TABLE AS BEGIN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'DELETING NOT ALLOWED'; ROLLBACK; END
错误
q3qa4bjr1#
mariadb只是不支持“数据库级”触发器。引用文件(重点补充):触发器,顾名思义,是一组语句,当表上发生事件时,这些语句运行或被触发。[…]事件可以是 INSERT ,安 UPDATE 或者 DELETE .所以基本上,这适用于dml操作(更改数据的语句),而不是ddl(更改结构的操作)。至于您所要求的内容,使用权限和角色来防止用户删除数据库中的任何表似乎是一种更合适的方法。
INSERT
UPDATE
DELETE
1条答案
按热度按时间q3qa4bjr1#
mariadb只是不支持“数据库级”触发器。引用文件(重点补充):
触发器,顾名思义,是一组语句,当表上发生事件时,这些语句运行或被触发。[…]事件可以是
INSERT
,安UPDATE
或者DELETE
.所以基本上,这适用于dml操作(更改数据的语句),而不是ddl(更改结构的操作)。
至于您所要求的内容,使用权限和角色来防止用户删除数据库中的任何表似乎是一种更合适的方法。