De code is: #procedure een tekort van een product Delimiter //CREATE PROCEDURE checkshortage (IN numberOfRows INTEGER) BEGIN # lus tellervariabele verklaar ik integer STANDAARD 1 te bepalen; #variable voor de gevraagde hoeveelheid DECLARE QtyRequestVar INTEGER; #variable voor de beschikbare hoeveelheid in de tabel producten VERKLAREN QtyAvailVar INTEGER; #variable voor kwantiteit, dat zou blijven VERKLAREN QtyRemainVar INTEGER; Terwijl ik SELECT QtyRequest, QtyAvail VAN SaleDetailsTemp WHERE ID = i IN QtyRequestVar, QtyAvailVar; SET QtyRemainVar = QtyAvailVar - QtyRequestVar; UPDATE SaleDetailsTemp SET QtyRemain = QtyRemainVar WHERE ID = i; SET i = i + 1; END TERWIJL; EINDE; //Hier de verbinding verklaring bestaat uit twee delen: de sectie verklaring en een WHILE lus.
De while lus bepaalt het verschil tussen de hoeveelheid van een gevraagde product en de bijbehorende hoeveelheid in voorraad (producten tabel). Dit verschil wordt in de overeenkomstige cel in het tijdelijke table.The informUser De informUser procedure als invoerparameters,numberOfRows enshort. Je weet al het gebruik vannumberOfRows. short hierboven vermeld. Het kan de waarde nul of 1. Wanneer nul, betekent dit dat op dat moment we aannemen, dat elk van de hoeveelheid producten de klant heeft verzocht, beschikbaar is. Deze procedure zal controleren of dat zo voor elke gevraagde hoeveelheden.
Indien het niet voor elke gevraagde hoeveelheid, waarna de waarde vanshort wordt gewijzigd in 1 (in deze procedure). De verbinding verklaring van de procedure bestaat uit twee delen: de sectie verklaring en een WHILE lus sectie. De code voor de procedure is: #procedure de gebruiker van een tekort Delimiter informeren //CREATE PROCEDURE informUser (IN numberOfRows INTEGER, OUT korte INTEGER) BEGIN # lus tellervariabele verklaar ik integer DEFAULT 1; #variable voor kwantiteit, dat zou blijven VERKLAREN QtyRemainVar INTEGER; Terwijl ik SELECT QtyRemain VAN SaleDetailsTemp WHERE ID = i IN QtyRemainVar; IF QtyRemainVar SELECT ProductName, 'is kort door de' AS Incident, (QtyRemain * -1) AS QuantityRemaining VAN SaleDetailsTemp WHERE ID = i; SET korte = 1; ANDERS SET korte =