mysql简单操作存储过程
是对sql语句的预编译
它的优点
1.存储过程一次编译后,存储在数据库中,后续调用不需要再编译,执行速度快。
2.存储过程是在数据库内部进行数据处理,相较于外部程序调用接口(如Java 程序的 JDBC 接口)访问数据库内部数据,性能更优
它的缺点
1.存储过程依赖于数据库,例如Oracle的存储过程和MySQL的存储过程语法存在差异。若需要从Oracle迁移到MySQL,带来的改造量将是巨大的,这也是部分架构人员不推荐使用存储过程的原因。
2.存储过程将处理逻辑和数据库绑定,不利于系统解耦。
3.存储过程代码管理困难,不利于团队协作开发;当数据库表变化时,可能会影响存储过程。
一般银行项目,很老的项目中会大量使用存储过程,但是目前很多公司都慢慢的使用其他方案代替存储过程,但是因为涉及很多部分,所以替换难度也是很大
主要是二次开发难度增加,阅读性很差
表准备
1 2 3 4 5 6 | CREATE TABLE net_type( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键' , n_type VARCHAR( 20 ) COMMENT '网站类型' , n_time VARCHAR( 20 ) COMMENT '类型添加时间' , n_user VARCHAR( 20 ) COMMENT '类型添加人' ) |
创建添加的存储过程
1 2 3 4 5 6 7 8 9 10 11 12 | DELIMITER $$ USE `yourheartTest`$$ DROP PROCEDURE IF EXISTS `pkg_net_type`$$ CREATE DEFINER=`qiuxie`@`%` PROCEDURE `pkg_net_type`(IN nType VARCHAR( 20 ),IN nUser VARCHAR( 20 )) BEGIN INSERT INTO net_type(n_type,n_time,n_user) VALUE(nType,NOW(),nUser); END$$ DELIMITER ; |
调用
1 | CALL pkg_net_type( '存储过程学习' , 'xiaomi' ) |
创建查询存储过程
1 2 3 4 5 6 7 8 9 10 11 12 13 | DELIMITER $$ USE `yourheartTest`$$ DROP PROCEDURE IF EXISTS `get_net_type`$$ CREATE DEFINER=`qiuxie`@`%` PROCEDURE `get_net_type`(IN nUser VARCHAR( 255 )) BEGIN SELECT * FROM net_type WHERE n_user=nUser; END$$ DELIMITER ; |
标签:
存储过程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异