mysql创建存储过程

坑一:

MySQL创建存储过程中,存储过程的输入参数变量命名不应该与字段名相同。如果相同,导致的结果就是参数的值将不会是你传入的值,而是变成每条记录的那个字段的值。如果在删除操作时,将会删除整张表的记录,是非常危险的。

#删除存储过程
drop procedure if exists pro_test;
#创建存储过程
DELIMITER //
create procedure pro_test(IN c_age INTEGER)
begin
select * FROM ur_test_z WHERE age = c_age;
end//

DELIMITER ;

注:如果该存储过程定义如下:

#删除存储过程
drop procedure if exists pro_test;
#创建存储过程
DELIMITER //
create procedure pro_test(IN age INTEGER)
begin
select * FROM ur_test_z WHERE age = age;
end//

DELIMITER ;

查询结果为整张表的记录。

即使写成这样也不行,查询结果仍会是整张表的记录

#删除存储过程
drop procedure if exists pro_test;
#创建存储过程
DELIMITER //
create procedure pro_test(IN age INTEGER)
begin
DECLARE var_age INT;
SET var_age = age;
select * FROM ur_test_z WHERE age = var_age;
end//
DELIMITER ;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值