Manchmal müssen Sie möglicherweise eine Sequenz in MySQL generieren. Da MySQL keine eingebaute Funktion zum Erstellen von Sequenzen hat, müssen Sie sie über eine SQL-Abfrage generieren. So erstellen Sie eine Sequenz in MySQL mithilfe der MySQL-Sequenzabfrage.
So erstellen Sie eine Sequenz in MySQL
Hier sind die Schritte zum Erstellen einer Sequenz in MySQL. Es gibt verschiedene Möglichkeiten, Sequenzen in MySQL zu generieren.
Sequenz mit AUTO_INCREMENT erstellen
Sie können Ihre MySQL-Sequenz während der Tabellenerstellung einfach mit dem Attribut AUTO_INCREMENT in einer Spalte speichern. Angenommen, Sie möchten die Tabelle orders(id, order_date, amount) erstellen und speichere die Sequenz in id Spalte.
mysql> create table orders(id int AUTO_INCREMENT PRIMARY KEY, order_date date, amount int); mysql> insert into orders(order_date, amount) values('2020-08-01', 250), ('2020-08-02',125), ('2020-08-03',300); mysql> select * from orders; +----+------------+--------+ | id | order_date | amount | +----+------------+--------+ | 1 | 2020-08-01 | 250 | | 2 | 2020-08-02 | 125 | | 3 | 2020-08-03 | 300 | +----+------------+--------+
In der obigen Tabelle definieren wir id -Spalte als Primärschlüssel und fügen Sie die AUTO_INCREMENT-Option hinzu, um Primärschlüsselwerte automatisch zu erhöhen und darin zu speichern.
Bitte beachten Sie, dass MySQL Ihnen erlaubt, nur eine AUTO_INCREMENT-Spalte pro Tabelle zu haben, und das auch noch als Primärschlüssel.
In der obigen INSERT-Abfrage stellen wir nur Werte für order_date bereit und Betrag Spalten, aber nicht id -Spalte, aber MySQL generiert automatisch eine Sequenz dafür.
Bonuslektüre:Wie man zwei Tabellen in MySQL vergleicht
Sequenz erstellen, ohne AUTO_INCREMENT zu verwenden
Angenommen, Sie möchten eine weitere Sequenzspalte erstellen, ohne AUTO_INCREMENT zu verwenden. In diesem Fall müssen Sie die UPDATE-Anweisung verwenden, um diese Sequenzspalte mathematisch zu berechnen und zu füllen.
Lassen Sie uns zum Beispiel eine Sequenz hinzufügen Spalte in obige Tabelle, um eine neue Sequenz zu speichern.
mysql> alter table orders add column sequence int;
Bonuslektüre:Wie man Tabellen in MySQL kopiert
Als nächstes verwenden wir die UPDATE-Anweisung, um eine Sequenz in MySQL zu erstellen. Wir erstellen eine Sequenz, die zweimal id ist Spaltenwert
mysql> update orders set sequence=2*id; mysql> select * from orders; +----+------------+--------+----------+ | id | order_date | amount | sequence | +----+------------+--------+----------+ | 1 | 2020-08-01 | 250 | 2 | | 2 | 2020-08-02 | 125 | 4 | | 3 | 2020-08-03 | 300 | 6 | +----+------------+--------+----------+
Bonuslektüre:So erhalten Sie die Daten des letzten Monats in MySQL
Wir können auch eine nichtlineare Sequenz erstellen, indem wir die in der UPDATE-Anweisung verwendete Formel aktualisieren. Hier ist die SQL-Abfrage zum Generieren einer Folge von Quadratwerten (y x y) von id Spalte
mysql> update orders set sequence=id*id; mysql> select * from orders; +----+------------+--------+----------+ | id | order_date | amount | sequence | +----+------------+--------+----------+ | 1 | 2020-08-01 | 250 | 1 | | 2 | 2020-08-02 | 125 | 4 | | 3 | 2020-08-03 | 300 | 9 | +----+------------+--------+----------+
Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!