Announcement

Collapse
No announcement yet.

Trigger SELECT-Unterabfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Trigger SELECT-Unterabfrage

    Hallo Zusammen,

    ich hoffe ihr könnt mir weiterhelfen. Ich sehe bei folgendem Trigger leider nicht meinen Fehler.

    Code:
    DELIMITER //
    CREATE TRIGGER tr_test
    	BEFORE INSERT
    	ON gen_material_id
    	FOR EACH ROW 
     
     BEGIN
         
         SET @var1 = (SELECT Kuerzel
                          FROM matcodetest.ref_codeschluesselfirma,
    		             matcodetest.gen_material_id
                          WHERE Kuerzel = REF_CodeSchluesselFirma_id 
    			AND REF_CodeSchluesselFirma_id = Firma_id
                            AND Firma_id = NEW.Firma_id);
         
         INSERT INTO matcodetest.ref_codeschluesselklar (KLARCODE_Lang) 
         VALUES                                         (@var1);
    	
     END;
    DELIMITER;
    Das ganze läuft soweit ohne Probleme durch. In der Tabelle matcodetest.ref_codeschluesselklar wird auch eine neue Zeile erstellt nur leider wird der Insert nicht angezeigt. Woran kann das liegen?

    Danke für eure Antworten.

  • #2
    Hallo,
    Originally posted by p.lang011 View Post
    ...nur leider wird der Insert nicht angezeigt.
    Was heist das? Warum verwendest du eine globale Servervariable statt einer lokalen? Und warum kein SELECT INTO?

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo,

      danke für deine Antwort.

      Originally posted by Falk Prüfer View Post
      Was heist das?
      Ich möchte das der Wert, welchen ich in der Select- Abfrage bekomme, in die Tabelle matcodetest.ref_codeschluesselklar eingetragen wird. Nur wird dieser Wert nicht eingetragen, es wird aber in der genannten Tabelle eine neue Zeile Angelegt.

      Hast du vielleicht einen SQL- Code- Beispiel für mich, welches sich auf deine Vorschläge bezieht?

      Gruß Peggy

      Comment


      • #4
        Hallo,

        also ich würde auf die Variable ganz verzichten und ein INSERT INTO ... SELECT verwenden.
        [highlight=sql]
        INSERT INTO matcodetest.ref_codeschluesselklar (KLARCODE_Lang)
        SELECT Kuerzel
        FROM matcodetest.ref_codeschluesselfirma,
        matcodetest.gen_material_id
        WHERE Kuerzel = REF_CodeSchluesselFirma_id
        AND REF_CodeSchluesselFirma_id = Firma_id
        AND Firma_id = NEW.Firma_id;
        [/highlight]

        Auch bin ich mir nicht sicher ob du die Tabelle gen_material_id wirklich benötigst und vor allem ob der Zugriff innerhalb des Triggers überhaupt möglich ist.
        Auf alle Fälle solltest du den Join explizit ausformulieren.

        Anmerkung: ohne genaue Kenntniss der Tabellenstrukturen sind konkrete Beispiele immer schwierig. Aus deinem Statement geht nicht hervor, welche Spalten zu welcher Tabelle gehören.

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X