mysql存储过程的编写

时间:2023-09-04 15:13:55

1、MySQL

新增存储过程,因为mysql默认以;为分隔符,该分隔符会使mysql自动执行sql语句,故需要将分隔符修改下,下面通过DELIMITER设为$$,然后编写SQL,编写完成再将;设为分隔符。(注:如果有VARCHAR类型的参数,一定要写长度,否则会报错)

DELIMITER $$
CREATE PROCEDURE query_company(IN cname_in VARCHAR(100), OUT result_out INT)
BEGIN
    SELECT count(*) INTO result_out FROM oasys_dept where dept_name like CONCAT('%', cname_in, '%');
END
$$
DELIMITER ;

存储过程调用

mysql存储过程的编写

SET @cname='公司';
SET @ret=0;
CALL query_company(@cname, @ret);
select @ret;

修改存储过程。MySQL似乎不支持修改存储过程,建议删除后新建。

删除存储过程

DELIMITER $$
CREATE PROCEDURE query_company(IN cname_in VARCHAR(100), OUT result_out INT)
BEGIN
    SELECT count(*) INTO result_out FROM oasys_dept where dept_name like CONCAT('%', cname_in, '%');
END
$$
DELIMITER ;