MySql编写一个存储过程?

编写一个存储过程。现有数据表books(cBookID char(10),vBookName varchar(100),mSalePrice decimal, siQuantity smallint)。现在需要输入一个价格变量price,找到离该价格最接近的价格和对应书籍,将找到的价格赋值给price。存储过程声明如下:
create procedure MYPROC(inout price decimal, out bookname varchar(100))

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 ; 用完了之后要把分隔符还原。
温馨提示:答案为网友推荐,仅供参考
相似回答