继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

mysql数据库——创建存储过程(二)

php小白兔秀秀
关注TA
已关注
手记 60
粉丝 37
获赞 648

创建不带参数的存储过程
Create procedure sp1() select version(); //创建一个存储过程用来查看系统
调用过程:
CALL sp1;
CALL sp1();
DESC users;
DELIMITER //
CREATE PROCEDURE removeUserByID(IN id INT UNSIGNED)
BEGIN
DELETE FROM users WHERE id = id;
END//
DELIMITER ;
CALL removeUserById(3); //参数名称最好不要和表中的字段相同
SELECT FROM users; //全删除了
注:参数名不要用和表中字段相同的名字,否则全部删了
DELIMITER //
CREATE PROCEDURE removeUserById(IN p_id INT UNSIGNED)
BEGIN DELETE FROM users WHERE id = p_id;
END//
DELIMITER ;
SELECT
FROM users;
CALL removeUserById(22);
SELECT * FROM users WHERE id = 22;
2.修改存储过程
ALTER PROCEDURE sp_name [characteristic]
COMMENT 'string'
|{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}
|SQL SECURITY{DEFINER|INVOKER}
3.删除存储过程
DROP PROCEDURE [IF EXISTS] sp_name;
DROP removeUserById;
创建带有IN和OUT类型参数的存储过程

  1. SELECT COUNT(id) FROM users INTO userNums; 通过 INTO 将COUNT(id)的值赋予参数userNums;
  2. 调用过程
    --> CALL removeUserAndReturnUserNums(27,@nums); 将返回值传至@nums。
    --> SELECT @nums; 显示结果。
  3. 如上所示,用@声明的变量叫做用户变量(例如@nums),只在当前客户端生效。
  4. 自己写代码时犯的错误:忘了加关键词IN 和 OUT ,导致用户变量的返回值为NULL。
打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP