I dette tilfellet den lagrede prosedyren, kaller callInsertUpdate annen lagret prosedyre for å sette inn en rad i salgsbord og de tre radene i SaleDetails bordet.Bassengområdet insertUpdate Prosedyre Ett salg betyr at én rad må settes inn i salgsbord og tilhørende rader for produktene som settes inn i SaleDetails tabellen. Den SaleID for raden som går inn i salgs tabellen er gitt automatisk av DBMS. AnsattID- og Kunde må gis av deg (eller noen kode som du har skrevet). Den DateAndTime (timestamp) verdien av Sales rad er også gitt automatisk av DBMS.
For SaleDetails tabellen må du skrive inn Kvantum og SoldPrice. Den insertUpdate lagrede prosedyren vil avgjøre SaleID og ProductID. Den SaleID bare innsatt i salgsbordet, er antallet maksimum (heltall) i SaleID kolonne, alt likt. Dette er koden for insertUpdate prosedyre; #procedure å sette inn SaleDetails og oppdatere Produkter Skille //CREATE PROSEDYRE insertUpdate (IN numberOfRows heltall) BEGIN # sløyfe tellervariabelen erklærer jeg heltall STANDARD 1; #productID variabel fra SaleDetailsTemp tabellen ERKLÆRER PIDVar INTEGER; #sold pris variabel for SaleDetails tabellen ERKLÆRER SoldPriceVar DECIMAL (19,2); #variable for kvantitet bedt DECLARE QtyRequestVar INTEGER; #variable for SaleID fra salgsbord ERKLÆRER SaleIDVar INTEGER; #variable for kvantitet som ville forbli ERKLÆRER QtyRemainVar INTEGER; #variable for tilgjengelig kvantum i produktene tabellen ERKLÆRER QtyAvailVar INTEGER; SELECT MAX (SaleID) Fra salg til SaleIDVar; Mens jeg SELECT QtyRequest, ProductID, QtyAvail, QtyRemain, SoldPrice Fra SaleDetailsTemp WHERE ID = i INTO QtyRequestVar, PIDVar, QtyAvailVar, QtyRemainVar, SoldPriceVar; INSERT INTO SaleDetails (SaleID, ProductID, mengde, SoldPrice) VERDIER (SaleIDVar, PIDVar, QtyRequestVar, SoldPriceVar); SET QtyRemainVar = QtyAvailVar - QtyRequestVar; UPDATE Produkter SET Antall = QtyRemainVar WHERE ProductID = PIDVar; SET i = i + 1; SLUTT MENS; SLUTT; //Det viktigste denne prosedyren gjør er å få data fra d