Erklären Fehler-handler nicht gültig in MySQL?
Ich bin versucht zu schreiben, dass meine erste gespeicherte Prozedur, die verwendet wird, einen Fehler-handler, aber Es scheint nicht zu akzeptieren, meine syntax. Hier ist, was ich verwende:
DELIMITER //
CREATE PROCEDURE min_list_valid (OUT pass CHAR
,OUT errs VARCHAR(50)
,IN `@list_id` INT
,IN `@min_input` INT)
BEGIN
BEGIN
DROP TABLE IF EXISTS `errors_table`;
CREATE TEMPORARY TABLE `errors_table`(error VARCHAR(30))ENGINE=MEMORY;
END;
BEGIN
DECLARE error_holder VARCHAR(30);
DECLARE error_checker VARCHAR(30);
SET error_checker = 0;
DECLARE CONTINUE HANDLER FOR SQLSTATE, SQLEXCEPTION
BEGIN
SELECT 'The user input is less than the minimum for this list' INTO error_holder;
SELECT error_holder INTO `errors_table`;
SET error_checker = 1;
END;
SELECT IF(MAX(CAST(`peg_num` AS UNSIGNED))<`@min_input`,'pass',NULL) AS `key`
FROM `game_lists`
WHERE `list_id` = `@list_id`
INTO pass;
IF error_checker <> 0 THEN
SELECT * FROM `errors_table`
END IF;
END;
END; //
Es gibt mir wieder die Fehlermeldung:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE CONTINUE HANDLER FOR SQLSTATE, SQLEXCEPTION BEGIN ' at line 16
Aber das ist seltsam, es sagt mir das erklären, das falsch ist aber die Zeile in der der Fehler ist in Zeile 16 (die mit SET error_checker = 0
). Ich glaube, ich bin nach der richtigen syntax, so... was ist falsch?
Was diese gespeicherte Prozedur nicht einfach ist, wählen Sie den maximalen Wert aus einer Liste auswählen, und alles andere ist mir gerade zu schaffen versucht, einen Fehler-handler, und eine Fehler-Tabelle zu speichern, der Fehler generiert hat. Ich wollte versuchen, eine einfache Funktionalität, die erstmals mit der "vollen" Fehlerbehandlung es gibt also nicht zu viele debug-Punkte.
Meine MySQL-version ist 5.6.14 - MySQL Community Server (GPL)
InformationsquelleAutor markovchain | 2014-08-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deine korrigierte Verfahren sollte wie folgt Aussehen. Paar Fehler wie schon unten
es war wenig mehr die Fehler von Ihnen gemacht. Überprüfen Sie Bearbeiten. es wird in Ordnung sein jetzt.
Schön! Danke! Es ist toll, ich habe jetzt eine Basis SP zu finden und zu analysieren. Nochmals vielen Dank! 🙂
InformationsquelleAutor Rahul