SETVAL | Syntax: | SETVAL(Sequenz, Wert [, Reserviert] [, Zyklus]) | Rückgabe-Wert: | INTEGER | Funktions-Typ: | Sequenz-Funktion | |
|
|
Setzt den nächsten "Wert" fest, der von einer "Sequenz" zurückgegeben werden soll und gibt diesen zurück.
Bei ungültigem "Wert" für die Sequenz gibt SETVAL() NULL zurück.
Wenn "Reserviert" true oder 1 ist, wird mit dem folgenden NEXTVAL() der nachste Wert nach dem gesetzten "Wert" zurüchgegeben. Das ist Voreinstellung.
Wenn "Reserviert" false oder 0 ist, wird mit dem folgenden NEXTVAL() der Wert zurüchgegeben, der mit "Wert" festgelegt wurde.
Wenn die Sequenz zyklisch einegstellt ist, kann mit SETVAL() der "Zyklus" erhöht werden.
Ohne "Zyklus" muss der zusetztende "Wert" größer als der aktuelle Wert in der Sequenz sein.
Mit Zyklus muss entweder der zusetztende "Wert" größer als der aktuelle Wert in der Sequenz sein, oder der Zyklus muss erhöht werden.
Verfügbar ab MariaDB Version 10.3. |
Beispiel 1: SETVAL() und NEXTVAL() ohne Angabe von "Reserviert". |
|
select setval(`my_sequence`,60) as result;
select nextval(`my_sequence`) as result;
|
|
|
Beispiel 2: SETVAL() und NEXTVAL() mit Angabe von "Reserviert" = true. |
|
select setval(`my_sequence`,60,true) as result;
select nextval(`my_sequence`) as result;
|
|
|
Beispiel 3: SETVAL() und NEXTVAL() mit Angabe von "Reserviert" = false. |
|
select setval(`my_sequence`,60,false) as result;
select nextval(`my_sequence`) as result;
|
|
|
Beispiel 4: Rückgabe von NULL, wenn "Wert" kleiner als aktueller Wert in der Sequenz. |
|
select setval(`my_sequence`,60,false) as result;
|
|
|
Beispiel 5: SETVAL() und NEXTVAL() mit Erhöhung von "Zyklus". |
|
select setval(`my_sequence`,1,false,2) as result;
select nextval(`my_sequence`) as result;
|
|
|
Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: |
Verwendung der SETVAL() Funktion in MariaDB-Datenbanken |
In MariaDB wird die SETVAL()-Funktion verwendet, um den aktuellen Wert eines Sequenzobjekts manuell in einen neuen angegebenen Wert festzulegen. Dabei der Name des Sequenzobjekts zusammen mit dem gewünschten neuen Wert übergeben und die Funktion gibt den neu eingestellten Wert zurück, der dann zur Bestätigung oder weiteren Verarbeitung verwendet werden kann. Die Funktion findet Anwendung, wenn die Sequenz auf einen bestimmten Wert zurückgesetzt oder mit anderen Daten synchronisiert werden soll. Das Ändern des Werts einer Sequenz kann dabei die Eindeutigkeit der generierten Werte beeinträchtigen, deshalb sollte geprüft werden, ob der neue Wert auch den Anforderungen entspricht. |
|
Weitere MySQL und MariaDB SQL Sequenz-Funktionen |
|