gpt4 book ai didi

mysql - 在触发器中声明变量

转载 作者:行者123 更新时间:2023-11-28 23:23:55 26 4
gpt4 key购买 nike

我在第 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;

提前致谢!

最佳答案

您必须在创建之前添加 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 行的末尾

关于mysql - 在触发器中声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40266717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com