Was ist eine gespeicherte MySQL-Prozedur?
Eine gespeicherte Prozedur ist eine kombinierte SQL-Anweisung, die auf dem Server gespeichert ist. Sie wird kompiliert, erstellt und in der Datenbank gespeichert. Benutzer können sie über den Namen der gespeicherten Prozedur aufrufen und ausführen. Die Kernidee gespeicherter Prozeduren ist die Kapselung und Wiederverwendbarkeit auf der SQL-Sprachebene der Datenbank. Die Verwendung gespeicherter Prozeduren kann die Geschäftskomplexität des Anwendungssystems verringern, erhöht jedoch die Belastung des Datenbankserversystems, sodass bei der Verwendung umfassende Geschäftsüberlegungen berücksichtigt werden müssen.
Grundlegendes Syntaxformat
CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body
(Kostenloses Teilen von Lernvideo-Tutorials: MySQL-Video-Tutorial)
Beispiel 1: Verbrauch berechnen Rabatt
-- 创建存储过程 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);
Beispiel 2: Während...Daten schreiben
Eine Datentabelle bereitstellen
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='触发器写数据';
Programm speichern
entsprechend dem Eingang Parameter zum Bestimmen der Anzahl der Datenelemente, die in die Tabelle t03_proced geschrieben werden.
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);
Hinweise
1. Geschäftsszenarien
Die Anwendung gespeicherter Prozeduren in der tatsächlichen Entwicklung ist normalerweise nicht sehr weit verbreitet. Die Levelentwicklung ermöglicht eine bessere Verwaltung, Wartung und Optimierung.
2. Ausführungsgeschwindigkeit
Wenn in einem einfachen Szenario das Schreiben von Einzeltabellendaten, basierend auf dem Schreiben einer Anwendung oder eines Datenbankverbindungs-Clients, im Vergleich zum Schreiben einer gespeicherten Prozedur ist, ist die Geschwindigkeit viel langsamer Gespeicherte Prozeduren haben weitgehend keinen Netzwerkkommunikations-Overhead, Analyse-Overhead, Optimierungs-Overhead usw.
Empfohlene verwandte Artikel und Tutorials: MySQL-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der gespeicherten MySQL-Prozedur mit Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!