Beiträge von Streuselchen

    Super, vielen Dank! So einfach Dinge sind das, aber mir ist SQL noch so fremd, da ist es unüberschaubar :oops:
    Darf ich direkt noch eine Frage stellen? Ich bleibe mal hier in meinem Thread, damit nicht so viele andere durch meine Trigger-Probleme gestört sind:

    delimiter //

    CREATE TRIGGER naechste_Wartung AFTER INSERT ON rechnung
    FOR EACH ROW BEGIN
    IF ( rechnung.istBearbeitet=1) THEN
    (
    SELECT
    DATEADD(month, Wartungsinterval, naechsteWartung)
    FROM
    kunde_has_kopierer
    WHERE
    rechnung.Auftragsnr=kunde_erteilt_auftrag.ANr
    AND
    kunde_has_kopierer.seriennummer= kunde_erteil_auftrag.seriennummer
    )
    END IF;
    //

    delimiter ;


    Hier soll immer das Datum für eine nächste Wartung um die Anzahl der in Wartungsinterval hinterlegten Monate erhöht werden, sobald der Boolean in rechnung.isBearbeitet auf true gesetzt wird. Einmal weiß ich noch nicht, ob der Trigger so funktioniert; ich konnte ihn noch nicht testen, da ich wieder Prbleme mit der Synthax habe. Abwechselnd bekomme ich Meldungen, dass entweder ein ; oder ein ein END erwartet wird. Egal, wie ich es dreh und schiebe, der Code wird nicht fehlerfrei. Habe ich zu viele Klammern oder was falsch gemacht (und würde das so überhaupt funktionieren, dh, kann ich mittels einer Selectanweisung die Daten editieren?).

    Vielen, vielen lieben Dank für die aufmerksame Hilfe für mich Anfängerin!

    Hallo, ich erstelle gerade aus Übungszwecken eine Datenbank und muss einen Trigger einarbeiten. Es handelt sich um eine fiktive Firma, die für Kunden Kopierer wartet. Jeder Kunde hat eine ID und beliebig viele Kopierer. Ich dachte, ich erstelle einen Trigger, der, falls ein Kunde gelöscht wird, alle Kopierer als einer Untertabelle entfernt (wenn der Kunde die Firma verlässt, müssen seine Kopierer ja nicht mehr gewartet werden)

    Dies sieht so aus:

    CREATE TRIGGER kunde_geht
    before DELETE
    ON kunde
    FOR EACH ROW BEGIN
    DELETE FROM kunde_has_kopierer WHERE kunde_has_kopierer.kundennr=OLD.KNr;
    END;

    Ich bekomme immer Fehler, die die Synthax betreffen. Hinter OLD.Knr; bzw End; soll, bzw soll kein Semikolon sein, so die Fehlermeldung.

    Aber wahrscheinlich liegt es woanders dran?
    [Blockierte Grafik: http://s1.directupload.net/images/140128/wdpogzdg.png]