ukulele
Datenbank-Guru
- Beiträge
- 5.321
Sry ich habe jetzt erstmal nicht alles gelesen und bin auch kein Experte für MariaDB aber ein paar Sachen triggern mich:
Abgesehen davon: id ist wirklich immer UNIQUE?
IF
BEGIN
Anweisung1;
Anweisung2;
END
ELSE
BEGIN
Anweisung3;
Anweisung4;
END;
Hinter Anweisung1 und ; kann das IF sonst schon zu Ende sein
Hier bin ich nicht sicher, ist das der selbe Datentyp, also INT bei Spalte cont?SELECT `cont` INTO content FROM `it` WHERE `id` = item; # contents of parts packaging
Hier bin ich mir ziemlich sicher das es am fehlenden Spaltennamen liegt. Wenn du das so ausführst sollte außerhalb der Prozedur eine Spalte ohne Namen im Ergebnis stehen, SQL braucht aber einen Alias um damit "weiter arbeiten" zu können. Versuch mal END) AS spalte INTO...SELECT (CASE WHEN `itgroup` = 1000 then
`pack`
ELSE
`unit` END) into piece FROM `it` WHERE `id` = item; # look for storage unit
Abgesehen davon: id ist wirklich immer UNIQUE?
Das sollte so gehen, ich habe mir aber angewöhnt das immer sauber zu kapseln, vor allem weil ich häufig mehrere Anweisung im selben Block habe. (MSSQL):-- If the input is not like storage unit
IF unit != piece
THEN
set piecequant = quantity * content;
else
set piecequant = quantity;
END IF;
IF
BEGIN
Anweisung1;
Anweisung2;
END
ELSE
BEGIN
Anweisung3;
Anweisung4;
END;
Hinter Anweisung1 und ; kann das IF sonst schon zu Ende sein
Noch keine Idee, check mal erst das mit dem Spaltennamen. Vielleicht Datentypen?-- if input magazin is empty
IF magazin = 0 THEN
#HIER LIEFERT DAS SELECT KEIN ERGEBNIS, AUSSERHALB JA
SELECT `magazin` INTO store FROM `stock` WHERE `it` = item;
ELSE
set store = magazin;
END IF;