In MySQL wie kann ich erstellen Sie eine gespeicherte Prozedur, die dauert mehrere Parameter?
Beispiel der Funktion:
nennen getThings(Menge, Ort, Grenze, marginError)
INHALT: CALL getThings(4, PA, 3, 1.2);
Beispiel Ziel:
CREATE PROCEDURE getThings(IN amount X, place VARCHAR(30), lim INT, marginError double)
SELECT place, limit, amount
FROM AREA, PRODUCT
WHERE AREA.place=PRODUCT.place
AND PRODUCT.AREA=place
ORDER BY ABS(AMOUNT-marginError)
LIMIT lim;
END
Gewünschten Ziel, ist das abrufen der nächsten 3 Produkte aus einer gespeicherten Prozedur (mit MySQL), aber ich bekomme den sytax Fehler beim erstellen der Prozedur.
InformationsquelleAutor stackoverflow | 2012-02-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
da Sie nicht nach den genauen Fehler/Meldung,
z.B.
IN
/OUT
/INOUT
Bezeichner sind optional. Durch default-Parameter sindIN
Danke, es gibt immer etwas zu lernen.
InformationsquelleAutor Bernhard Kircher
LIMIT
ist MySQL reserviertes Wort. Wenn Sie wirklich brauchen, es zu benutzen, da die Spalte name, in der in backticks (`). Auch Ihre paramteres haben dieselben Namen wie die Spalten in Ihrer Tabelle, die zusätzlich zu Verwirrung.Es ist immer noch in Ihrer Abfrage.
Nein, war es noch nie. Ich hatte lim in es
SELECT place, limit, amount
<-- du sicher, dass es keinelimit
hier?Ich bin affraid Sie hatte die GRENZE in Ihrer ersten version deiner Frage, da ich kopiert den code für die erste version meiner Antwort...
InformationsquelleAutor Mchl