1、delimiter // ,声明
分隔符:DELIMITER是分割符的意思,因为MySQL默认以""为分隔符,如果我们没有声明分割符,那么编译器会把
存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将""当做存储过程中的代码,不会执行这些代码(这里如果不懂的话,你可以通过试错的方法来理解)。2、编写存储过程的格式:CREATE PROCEDURE([[IN |OUT |INOUT ]参数名数据类形...])例子:1)create procedure proc1(out s int) // 只有输出2)create procedure proc2(in p_in bigint) // 只有输入3)create procedure proc15() // 没有输入与输出4)create procedure demo_multi_param(in id bigint,in name varchar(32),out c int) //多输入与输出3、过程体的开始与结束使用BEGIN与END进行标识。4、select count (*) into s from student// 过程体,一系列的逻辑语句,sql语句5、delimiter 用完了之后要把分隔符还原。创建存储过程
mysql>delimiter $ -- delimiter $是设置 $为命令终止符号,代替默认的分号,因为分号有其他用处.
mysql>create procedure sp_test(IN pi_id int, OUT po_name varchar(10))
->begin
->select * from test.tb_test
->select tb_test.name into po_name from test.tb_test where tb_test.id = pi_id
->end
->$
Query OK, 0 rows affected (0.00 sec)
mysql>delimiter -- 恢复分号作为分隔终止符号
5.调用存储过程
mysql>set@po_name=''
Query OK, 0 rows affected (0.00 sec)
mysql>call sp_test(1,@po_name)
评论列表(0条)