mysql 저장 프로시저란 무엇인가요?
저장 프로시저는 서버에 저장되어 있는 결합된 SQL 문으로, 데이터베이스에 컴파일, 생성 및 저장됩니다. 사용자는 저장 프로시저의 이름을 통해 이를 호출하고 실행할 수 있습니다. 저장 프로시저의 핵심 아이디어는 데이터베이스의 SQL 언어 수준에서의 캡슐화와 재사용성입니다. 저장 프로시저를 사용하면 응용 시스템의 비즈니스 복잡성을 줄일 수 있지만, 데이터베이스 서버 시스템의 부하가 증가하므로 사용 시 포괄적인 비즈니스 고려 사항을 고려해야 합니다.
기본 구문 형식
CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body
(무료 학습 영상 튜토리얼 공유: mysql 영상 튜토리얼)
예 1: 소비 할인 계산
-- 创建存储过程 DROP PROCEDURE IF EXISTS p01_discount ; CREATE PROCEDURE p01_discount(IN consume NUMERIC(5,2),OUT payfee NUMERIC(5,2))BEGIN -- 判断收费方式 IF(consume>100.00 AND consume<=300.00) THEN SET payfee=consume*0.8; ELSEIF (consume>300.00) THEN SET payfee=consume*0.6; ELSE SET payfee = consume; END IF; SELECT payfee AS result;END ; -- 调用存储过程 CALL p01_discount(100.0,@discount);
예 2: 동안..데이터 쓰기
조각 제공 data Table
CREATE TABLE `t03_proced` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `temp_name` varchar(20) DEFAULT NULL COMMENT '名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='触发器写数据';
Stored program
은 전달된 매개변수를 기반으로 t03_proced 테이블에 기록되는 데이터 항목 수를 결정합니다.
DROP PROCEDURE IF EXISTS p02_batch_add ; CREATE PROCEDURE p02_batch_add(IN count INT(11))BEGIN DECLARE temp int default 0; WHILE temp < count DO INSERT INTO t03_proced(temp_name) VALUES ('pro_name'); SET temp = temp+1 ; END WHILE; END ; -- 测试:写入10条数据call p02_batch_add(10);
Notes
1. 비즈니스 시나리오
실제 개발에서 저장 프로시저를 적용하는 것은 일반적으로 애플리케이션 수준에서 개발되므로 더 잘 관리하고 유지 관리하며 최적화할 수 있습니다.
2. 실행 속도
단일 테이블 데이터 쓰기의 경우 애플리케이션 쓰기 또는 데이터베이스 연결 클라이언트 쓰기를 기반으로 하면 저장 프로시저의 쓰기 속도보다 쓰기 속도가 훨씬 느려집니다. 네트워크 통신 오버헤드, 파싱 오버헤드, 옵티마이저 오버헤드 등
추천 관련 기사 및 튜토리얼: mysql 튜토리얼
위 내용은 예제와 함께 mysql 저장 프로시저에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!