Einzelnen Beitrag anzeigen

Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Variable in Function

  Alt 23. Jun 2014, 06:47
Datenbank: MySql • Version: 5.6 • Zugriff über: egal
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:
Code:
select @get_next_id;
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...
Jens
  Mit Zitat antworten Zitat