Stored Procedure Systemvar. ERROR

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Stored Procedure Systemvar. ERROR

    Hi,

    ich habe eine Stored Procedure geschrieben welche ich nun auf Transaktionen
    umstellen bzw. verbessern möchte.
    Ich komme nicht weiter wie ich abfrage ob !irgendein Fehler! bei meinem Insert
    aufgetreten ist. Ich habe im Netz das hier gefunden:
    Code:
    IF @@ERROR = 0
       BEGIN
           COMMIT ....
       END
    ELSE ...
    [FONT=Arial]So wäre das auch super nur bekomme ich dann beim erstellen der Stored P.
    immer den Fehler
    [/FONT]
    [FONT=Arial]"#1193 - Unknown system variable 'ERROR'"
    Jetzt dachte ich mir.. na gut dan schaue ich mal was mir PHPMYAdmin
    so für Variablen anbietet.. nur nichts gefunden was ich gebrauchen könnte.

    [/FONT]Server Version: 5.1.49-MariaDB
    MySQL-Client-Version: 5.1.49-MariaDB

    Kann es sein das MariaDB damit noch nicht kann? (Würde ich ausschliessen aber
    ich weiss es nicht.)

    Danke für Antworten

  • #2
    @@ERROR ist eine Spezialität von MS SQL. Das gibt es in MySQL nicht.

    Kommentar


    • #3
      Lösung

      Danke für die Antwort.
      Ich habe es jetzt so gelöst und hoffe das das Transaktionssicher ist...
      hab meinem Prof. noch eine Email geschrieben evtl. Poste ich dann noch ne bessere
      Lösung.
      Code:
      DECLARE `Constraint Violation` CONDITION FOR SQLSTATE '23000';  
      DECLARE EXIT HANDLER FOR NOT FOUND BEGIN ROLLBACK; SET p_out = FALSE; END;
      DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; END;
      DECLARE EXIT HANDLER FOR SQLWARNING BEGIN ROLLBACK; END;
      DECLARE EXIT HANDLER FOR `Constraint Violation` ROLLBACK; 
      SET p_out = TRUE;
      START TRANSACTION; 
      --- dann die SQL Statements...
      COMMIT;
      Wenn wer noch Vorschläge zur Verbesserung hat oder einen anderen besseren Weg
      Ich bin immer für Denkanstösse dankbar

      Kommentar

      Lädt...
      X