mysql 5.7 中用declare 声明变量无法成功

fuck_csdd 2016-05-03 10:37:39
在mysql 5.7 中用declare 声明变量无法成功:
比如: decalre var_name INT DEFAULT 1;(失败)
总是报语法错误,无法成功

如果是直接过变量赋值,则那个变量就能用:
set @var_name = 2;(成功)

select @var_name from dual;(成功),得到的结果也是 2

是不是mysql 5.7 版本改了,还是说declare 语句要在特殊的表中才能使用
有没有谁知道?

谢谢
...全文
2114 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
octwind 2018-12-29
  • 打赏
  • 举报
回复
#A:id,name -- 假设A表id为自增型
#B:id,user_id,text -- 假设B表id为自增型
#temp:username,text -- 查出的临时数据表
drop procedure if exists procInsert;
DELIMITER $$
CREATE PROCEDURE procInsert()
BEGIN
DECLARE t_error INTEGER;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error = 1;
START TRANSACTION;
insert into A(name) select username from temp;
insert into B(user_id, text) select A.id,t.text from temp t inner join A on t.username = A.name;
IF t_error = 1 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
END$$
DELIMITER ;

call procInsert();
fuck_csdd 2016-05-03
  • 打赏
  • 举报
回复
那么,有人知道mysql 中变量的分类吗? 你知道不 ?@benluobo
benluobo 2016-05-03
  • 打赏
  • 举报
回复
declare 需要在存储过程,函数或者触发器中使用

56,937

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧