千家信息网

创建MYSQL的储存过程

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,创建MYAQL的存储过程1 创建不带参数的储存过程CREATE PROCEDURE 过程名() 过程体 SELECT VERSION();2 调用储存过程第一种 CALL 过程名(); (带有参数时使
千家信息网最后更新 2025年02月23日创建MYSQL的储存过程

创建MYAQL的存储过程

1 创建不带参数的储存过程

CREATE PROCEDURE 过程名() 过程体 SELECT VERSION();

2 调用储存过程

第一种 CALL 过程名(); (带有参数时使用)

第二种 CALL 过程名; (不带参数时使用)

3 创建带有IN类型参数的存储过程 (创建前要先修改MYSQL的默认定界符为//,创建好后要修改回;)

第一步 DELIMITER新的定界符如//

第二步 CREATE PROCEDURE 过程名如removeUserByid(IN 参数名如id 数据类型如INT 字符类型如UNSIGNED)

第三步 BEGIN

第四步 DELETEFROM 表名 WHERE 数据表中的字段id=传递的参数id

第五步 END

第六步 //

第七步 DELIMITER原来的定界符;

4 删除程序

DELETE PROCEDURE 过程名;

删除存储过程

DROP PROCEDURE 过程名;

5 创建带有IN和OUT类型参数的存储过程 (创建前要先修改MYSQL的默认定界符为//,创建好后要修改回;)

第一步 DELIMITER新的定界符如//

第二步 CREATE PROCEDURE 过程名如removeUserAndReturnUserNums(IN参数名如p_id 数据类型如INT 字符类型如UNSIGNED,OUT参数名如userNums数据类型如INT 字符类型如UNSIGNED)

第三步 BEGIN

第四步 DELETEFROM 表名 WHERE 数据表中的字段id=传递的参数p_id

第五步 SLEECTcount(字段如id) FROM 表名 INTO 参数名userNums

第六步 END

第七步 //

第八步 DELIMITER 原来的定界符;

6 调用存储过程CALL 过程名

如removeUserAndReturnUserNums(要删除的如21,剩下的总量如@nums); 查询剩下的总量SELECT @nums;

ROW_COUNT(); 可以查询到数据的插入.删除和更新的记录总数

7 创建带有多个OUT类型参数的存储过程 (创建前要先修改MYSQL的默认定界符为//,创建好后要修改回;)

第一步 DELIMITER新的定界符如// 通过年龄删除用户并且返回信息

第二步 CREATE PROVEDURE 过程名如removeUserByAgeReturnInfos(IN 参数名如p_age 数据类型如SMALLINT 字符类型如UNSIGNED,OUT 参数名如deleteUsers 数据类型如SMALLINT 字符类型如UNSIGNED,OUT参数名如userCounts 数据类型如SMALLINT字符类型如UNSIGNED)

第三步 BEGIN

第四步 DELETEFROM 表名 WHERE 数据表中的字段age=传递的参数p_age;

第五步 SLEECTROW_ COUNT() 表名 INTO 参数名deleteUsers

第六步 SLEECTCOUNT(字段如id) FROM 表名 INTO 参数名userCounts

第七步 END

第八步 //

第九步 DELIMITER原来的定界符;

8 调用存储过程CALL 过程名如removeUserByAgeReturnInfos(要删除的如21,你要删除的数量如@nums,剩下的总量如@wang);

查询你要删除的数量和删除后剩下的数量

SELECT @nums@wang

查询剩下的总量SELECT @nums;

9 查询表中你要查询的字段数据有几条

SELECT COUNT(id) FROM 表名 WHERE 你要查询的字段如age=你要查询的数据如21

0