这个mysql存储过程哪里有错,高手指教

John1202 2012-04-20 05:51:27
这个mysql存储过程哪里有错,高手指教

create procedure sp_insert_depart(
in dep_name varchar(50),
in dep_memo varchar(50),
out Result int
)
BEGIN
INSERT INTO tbl_depart(departid,departname,departmemo) values (null,dep_name,dep_memo);
set Result = LAST_INSERT_ID();
END;

SQL 查询:

CREATE PROCEDURE sp_insert_depart( IN dep_name varchar( 50 ) , IN dep_memo varchar( 50 ) , out Result int ) BEGIN INSERT INTO tbl_depart( departid, departname, departmemo )
VALUES (

NULL , dep_name, dep_memo
);



MySQL 返回:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
huabing84 2012-04-23
  • 打赏
  • 举报
回复
如果你的departid是自增的话,把
INSERT INTO tbl_depart(departid,departname,departmemo) values (null,dep_name,dep_memo);
set Result = LAST_INSERT_ID();
修改成
INSERT INTO tbl_depart(departname,departmemo) values (dep_name,dep_memo);
set Result = LAST_INSERT_ID();
不然你要手动给他赋值。
yq510457 2012-04-23
  • 打赏
  • 举报
回复
楼上正解!
WWWWA 2012-04-23
  • 打赏
  • 举报
回复
如果是在MYSQL命令行下输入:
delimiter $$

create procedure sp_insert_depart(
in dep_name varchar(50),
in dep_memo varchar(50),
out Result int
)
BEGIN
INSERT INTO tbl_depart(departid,departname,departmemo) values (null,dep_name,dep_memo);
set Result = LAST_INSERT_ID();
END;$$
delimiter ;
ACMAIN_CHM 2012-04-23
  • 打赏
  • 举报
回复
delimiter //

create procedure sp_insert_depart(
in dep_name varchar(50),
in dep_memo varchar(50),
out Result int
)
BEGIN
INSERT INTO tbl_depart(departid,departname,departmemo) values (null,dep_name,dep_memo);
set Result = LAST_INSERT_ID();
END;
//
雪狐晨光 2012-04-22
  • 打赏
  • 举报
回复
我也是初学者 过来看看~
rucypli 2012-04-20
  • 打赏
  • 举报
回复
set Result = LAST_INSERT_ID();之前没有定义这个Result啊

56,687

社区成员

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

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