A volte potrebbe essere necessario generare una sequenza in MySQL. Poiché MySQL non ha una funzione incorporata per la creazione di sequenze, è necessario generarla tramite query SQL. Ecco come creare una sequenza in MySQL usando la query di sequenza MySQL.
Come creare una sequenza in MySQL
Ecco i passaggi per creare una sequenza in MySQL. Esistono vari modi per generare sequenze in MySQL.
Crea sequenza utilizzando AUTO_INCREMENT
Puoi semplicemente memorizzare la tua sequenza MySQL in una colonna usando l'attributo AUTO_INCREMENT durante la creazione della tabella. Supponiamo che tu voglia creare la tabella ordini(id, data_ordine, importo) e memorizza la sequenza in id colonna.
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 | +----+------------+--------+
Nella tabella sopra, definiamo id colonna come chiave primaria e include l'opzione AUTO_INCREMENT per incrementare e memorizzare automaticamente i valori della chiave primaria al suo interno.
Tieni presente che MySQL ti consente di avere solo una colonna AUTO_INCREMENT per tabella e anche quella come chiave primaria.
Nella query INSERT sopra, forniamo solo i valori per data_ordine e importo colonne ma non id colonna ma MySQL genera automaticamente la sequenza per essa.
Bonus Leggi:Come confrontare due tabelle in MySQL
Crea sequenza senza utilizzare AUTO_INCREMENT
Supponiamo di voler creare un'altra colonna di sequenza senza utilizzare AUTO_INCREMENT. In tal caso, dovrai utilizzare l'istruzione UPDATE per calcolare matematicamente e popolare questa colonna della sequenza.
Ad esempio, aggiungiamo una sequenza colonna alla tabella sopra per memorizzare una nuova sequenza.
mysql> alter table orders add column sequence int;
Bonus Leggi:Come copiare la tabella in MySQL
Successivamente, utilizziamo l'istruzione UPDATE per creare una sequenza in MySQL. Creeremo una sequenza che è due volte id valore della colonna
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 | +----+------------+--------+----------+
Bonus Leggi:Come ottenere i dati dell'ultimo mese in MySQL
Possiamo anche creare una sequenza non lineare aggiornando la formula utilizzata nell'istruzione UPDATE. Ecco la query SQL per generare una sequenza di valori quadrati (y x y) di id colonna
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 semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!