未创建MySql触发器.语法错误:#1064



我在MySql中遇到触发器问题。当我创建一个触发器时,我有一个语法错误

CREATE TABLE user (
id int NOT NULL,
completeName varchar(255) NOT NULL,
email varchar(255) NOT NULL,
passw_hash varchar(255) NOT NULL,
accType varchar(255) NOT NULL,
PRIMARY KEY (id)
);
create or REPLACE trigger test
AFTER insert on user
FOR EACH ROW
BEGIN
INSERT INTO `user` VALUES (1,'Pinco 
Pallo','pinco@pallo','zinco','Owner');
end;

Erorr:#1064

显示的代码中有2个错误。

  1. MySQL不支持CREATE TRIGGER中的OR REPLACE

它允许使用CREATE TRIGGER IF NOT EXISTS,如果它已经存在,则禁止创建触发器。若要替换触发器,则必须先将其删除,然后重新创建。

https://dev.mysql.com/doc/refman/8.0/en/create-trigger.htmlhttps://dev.mysql.com/doc/refman/8.0/en/drop-trigger.html

  1. 触发器无法更改其定义的表

将创建触发器。但这将导致无法更新存储函数/触发器中的表"user",因为它已被调用此存储函数/触发的语句使用运行时错误。

https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html

最新更新