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!