Moin,
ich arbeite mich grade in
MySql ein.
Ich möchte eine Function erstellen, die aus einer Tabelle den aktuellen Wert holt, den Wert in der Tabelle hochzählt und den geholten Wert zurückgibt.
Folgende Function hab ich erstellt:
Code:
CREATE DEFINER=`root`@`
localhost` FUNCTION `get_next_id`() RETURNS int(11)
BEGIN
declare result int;
select SEQUENCE_VALUE into @result from openjpa_sequence_table where id = 0;
if (@result is null) then
SET @result := 1;
insert into openjpa_sequence_table (ID, SEQUENCE_VALUE) VALUES (0, 1);
else
update openjpa_sequence_table
set SEQUENCE_VALUE = SEQUENCE_VALUE + 1
where ID = 0;
end if;
RETURN @result + 1;
END
Wenn ich die Function ausführe:
bekomme ich immer NULL als Result zurück. Ich bin ratlos, warum das so ist. In der Tabelle sind aktuell keine Datensätze, daher sollte die Function den entsprechenden Datensatz erstellen.
In der Tabelle wird aber kein Datensatz erstellt. Daher vermute ich, dass der TRUE-Teil des If-Statements nicht ausgeführt wird.
Ich bin ratlos...