Stored Procedure erzeugen und Variablen deklarieren

Einrichtung bzw. Problembehebung *Datenbanken (MySQL)
Antworten
localhorst
Beiträge: 571
Registriert: 17.12.2012, 20:19

Stored Procedure erzeugen und Variablen deklarieren

Beitrag von localhorst »

Hier eine Beispiel-Prozedur:

Code: Alles auswählen

CREATE PROCEDURE `PROZEDUR_NAME`(IN `InvoiceID` INT, IN `ItemID` INT, IN `ItemQuantity` INT)
   LANGUAGE SQL
   NOT DETERMINISTIC
   CONTAINS SQL
   SQL SECURITY DEFINER
BEGIN
   DECLARE quantity INT;
   DECLARE homebased INT;
	
   SET homebased = (SELECT `item-home-stored` FROM `mystore2011_items` WHERE `id`=ItemID);
	
   INSERT INTO `mystore2011_invoice-items`(`invoice-fid`,`item-fid`,`item-quantity`) VALUES(InvoiceID,ItemID,ItemQuantity);
	
   IF homebased = 1 THEN
      SET quantity = (SELECT `item-quantity` FROM `mystore2011_store-home` WHERE `item-fid`=ItemID);
      UPDATE `mystore2011_store-home` SET `item-quantity`=(quantity - ItemQuantity) WHERE `item-fid`=ItemID;
   END IF;
END
Aufgerufen wird die Prozedur dann mit folgendem SQL-Statement:

Code: Alles auswählen

CALL PROZEDUR_NAME(InvoiceID,ItemID,ItemQuantity)
Antworten