我在第5行遇到错误(在第一个声明的分号处),有些东西与MariaDB不对应。任何人都有类似的问题,或者知道如何解决这类问题?
CREATE TRIGGER incative
BEFORE DELETE
ON users FOR EACH ROW
BEGIN
DECLARE _user INT;
DECLARE username VARCHAR(150),_password VARCHAR(150),
email VARCHAR(320),ip_address varchar(150),
_data VARCHAR(120),_time VARCHAR(150);
DECLARE _active int DEFAULT 1;
SELECT * INTO _user, username, _password, email, ip_address,
_data, _time, _active
FROM users WHERE ID_User = old.ID_User
INSERT into users(_user, username, _password, email, ip_address,
_data, _time, _active)
END;
提前致谢!
答案 0 :(得分:1)
您必须在创建...之前添加DELIMITER $$
DELIMITER $$
CREATE TRIGGER incative
BEFORE DELETE .....
有关详情,请查看以下答案:https://stackoverflow.com/a/1346645/1548932
我不知道mariaDB的情况但是如果你使用Mysql,你必须将第6行更改为:
DECLARE username,_password,email ,ip_address,_data,_time VARCHAR(150);
或者如果长度是不同的,则必须为每行声明一个变量,如:
DECLARE username VARCHAR(150)
Declare email VARCHAR(320)
最后不要忘记;在第8行和第10行的末尾