Hallo,
ich weiß nun echt nicht mehr was ich machen soll. Und zwar habe ich eine stored_Procedure angelegt die einen User, samt seiner Bestellung löschen soll:
D.h. in der Rot markierten Zeile, versucht er sich die OrderIDs zu ziehen welche eben auf die jeweilige CustomerID passen. Nun kommen dort mehrere OrderIDs, deshalb kommt immer ein Fehler. Gibt es sowas wie Arrays in SQL ? Ich bin leider nicht fündig geworden... wie kann ich das Problem lösen?
Bitte entschuldigt diese Anfängerfrage...
Grüße,
Shakeya
EDIT: ok, es gibt wohl keine Arrays. Könnte ich irgendwie festlegen, dass er wenigstens die erste OrderID die er findet, in die Variable läd.. und das immer so weiter bis einfach keine Einträge mehr gefunden werden? Geht das?
ich weiß nun echt nicht mehr was ich machen soll. Und zwar habe ich eine stored_Procedure angelegt die einen User, samt seiner Bestellung löschen soll:
Code:
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`dapro04`@`%` PROCEDURE `StoredProcedure_DELETEUSER`(IN custID INT(5))
BEGIN
DECLARE TempOrderID INT;
DECLARE counter INT;
SELECT COUNT(*) INTO counter FROM order1 WHERE order1.CustomerID = custID;
WHILE counter > 0 DO
[COLOR=#ff0000] SELECT OrderID INTO TempOrderID FROM order1 WHERE CustomerID = custID; [/COLOR]
DELETE FROM payment WHERE payment.OrderID = TempOrderID;
DELETE FROM order_Detail WHERE order_Detail.OrderID = TempOrderID;
DELETE FROM order1 WHERE order1.OrderID = TempOrderID;
SELECT COUNT(*) INTO counter FROM order1 WHERE order1.CustomerID = custID;
END WHILE;
DELETE FROM customer WHERE customer.CustomerID = custID;
END
D.h. in der Rot markierten Zeile, versucht er sich die OrderIDs zu ziehen welche eben auf die jeweilige CustomerID passen. Nun kommen dort mehrere OrderIDs, deshalb kommt immer ein Fehler. Gibt es sowas wie Arrays in SQL ? Ich bin leider nicht fündig geworden... wie kann ich das Problem lösen?
Bitte entschuldigt diese Anfängerfrage...
Grüße,
Shakeya
EDIT: ok, es gibt wohl keine Arrays. Könnte ich irgendwie festlegen, dass er wenigstens die erste OrderID die er findet, in die Variable läd.. und das immer so weiter bis einfach keine Einträge mehr gefunden werden? Geht das?