Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erstellen Sie eine Sequenz in MySQL

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!