2012-04-02 12 views
1

Ich möchte die Fehlermeldungen speichern, die beim Ausführen der gespeicherten Prozedur in einer anderen Fehlertabelle auftritt. Hier ist meine Beispielprozedur mit einigen Fehleranweisungen.Wie Sie die SQL-Fehlermeldung in die Tabelle einfügen

DELIMITER $$ 
    DROP PROCEDURE IF EXISTS `test`$$ 
    CREATE PROCEDURE `test`() 
    BEGIN 
     SELECT * FROM emp; 

    END $$ 
    DELIMITER $$; 

Wenn ich das obige Verfahren nenne es gibt mir error.I wnat diese Fehlercode & Nachricht in einer anderen Tabelle zu speichern, als „Fehler“. Alle Hinweise sind willkommen. Vielen Dank im Voraus.

Antwort

0

SQL-Fehler bedeutet, dass etwas mit Ihrer SQL-Abfrage nicht stimmt. Es hängt (oder auch nicht) von Ihrem Tisch ab. Wenn der Fehler TABLE SPECIFIC oder QUERY SYNTAX ERROR ist, das heißt, wenn etwas mit einer bestimmten Tabelle NUR oder mit einer Abfrage falsch ist, dann können Sie Ihre Fehler definitiv in eine Tabelle einfügen. Aber wenn es etwas mit Ihrem CONNECTION oder etwas anderem gibt, dann können Sie Fehler in keine Tabelle einfügen. IMMER versuchen Sie, Ihre Fehler in einer html Datei oder txt (Text) -Datei zu protokollieren, so dass Sie reibungslos darauf zugreifen können. Auch gibt es eine geringere Chance zum Scheitern.

0

Der Standard Weg, dies in MySQL zu behandeln, ist eine HANDLER zu deklarieren, um die Fehlerbedingung so zu behandeln, wie Sie wollen. Dadurch können Sie bei Bedarf eine Fehlermeldung in eine andere Tabelle einfügen und dann entweder CONTINUE oder EXIT den erforderlichen Ablauf ausführen.

Hier ist die Dokumentation:

http://dev.mysql.com/doc/refman/5.0/en/declare-handler.html

Leider werden Sie nicht in der Lage, die SQLSTATE der Anweisung zuzugreifen, die den Fehler verursacht hat, so dass dieser Ansatz ist etwas eingeschränkt.

Hier ist eine andere wichtige Frage auf SO mit viel mehr ins Detail:

MySQL Stored Procedure Error Handling

Verwandte Themen