MariaDB - Sequenzen
In Version 10.0.3 hat MariaDB eine als Sequenz bekannte Speicher-Engine eingeführt. Sein Ad-hoc-Vorgang generiert eine ganzzahlige Sequenz für Operationen und wird dann beendet. Die Sequenz enthält positive Ganzzahlen in absteigender oder aufsteigender Reihenfolge und verwendet einen Start-, End- und Inkrementwert.
Die Verwendung in mehreren Abfragen ist aufgrund seiner virtuellen (nicht auf die Festplatte geschriebenen) Natur nur in der ursprünglichen Abfrage nicht zulässig. Sequenztabellen können jedoch über einen ALTER-Befehl in Standardtabellen konvertiert werden. Wenn eine konvertierte Tabelle gelöscht wird, ist die Sequenztabelle weiterhin vorhanden. Sequenzen können auch keine negativen Zahlen erzeugen oder sich im Minimum / Maximum drehen.
Installieren der Sequence Engine
Für die Verwendung von Sequenzen muss die Sequenz-Engine installiert werden, die MariaDB als Plugin und nicht als Binärdatei verteilt. Installieren Sie es mit dem folgenden Befehl:
INSTALL SONAME "ha_sequence";
Überprüfen Sie es nach der Installation -
SHOW ENGINES\G
Denken Sie daran, dass Sie nach der Installation der Engine keine Standardtabelle mit einem Namen erstellen können, der Sequenzsyntax verwendet. Sie können jedoch eine temporäre Tabelle mit einem Sequenzsyntaxnamen erstellen.
Sequenz erstellen
Es gibt zwei Methoden zur Sequenzerstellung:
Erstellen Sie eine Tabelle und definieren Sie mit dem Attribut AUTO_INCREMENT eine Spalte als automatische Inkrementierung.
Verwenden Sie eine vorhandene Datenbank und eine Sequenz-SELECT-Abfrage, um eine Sequenz zu erstellen. Die Abfrage verwendet die Syntax seq_ [FROM] _to_ [TO] oder seq_ [FROM] _to_ [TO] _step_STEP.
Best Practices bevorzugen die Verwendung der zweiten Methode. Sehen Sie sich ein Beispiel für eine Sequenzerstellung an -
SELECT * FROM seq_77_to_99;
Sequenzen haben viele Verwendungszwecke -
Suchen Sie fehlende Werte in einer Spalte, um sich vor verwandten Problemen im Betrieb zu schützen.
SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq
= x.y WHERE x.y IS NULL;
Konstruieren Sie eine Kombination von Werten -
SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
Finden Sie Vielfache einer Zahl -
SELECT seq FROM seq_3_to_100_step_4;
- Erstellen Sie eine Datumsreihenfolge für Anwendungen wie Buchungssysteme.
- Konstruieren Sie eine Zeitsequenz.