Usare le Generated Column in MariaDB e MySQL
Supponiamo di avere una classica tabella con questi tre campi:
- id
- nome
- cognome
E supponiamo di avere sempre la necessità di visualizzare il nome e il cognome insieme e messi in maiuscolo.
Le SELECT dovrebbero sempre fare il CONCAT + UPPER, e questo può appesantire le prestazioni.
SELECT nome, cognome, CONCAT(UPPER(nome), ' ', UPPER(cognome)) FROM persone
In MariaDB e MySQL possiamo ovviare usando le Generated Column, in cui gli si da una regole e si autopopolano seguendola.
Quindi possiamo intanto aggiungere la colonna:
ALTER TABLE persone
ADD COLUMN nome_cognome VARCHAR(255)
GENERATED ALWAYS AS (CONCAT(UPPER(nome), ' ', UPPER(cognome)));
A questo punto se aggiungiamo un record, quel campo verrà compilato automaticamente:
INSERT INTO persone (id, nome, cognome) VALUES (NULL, 'nome 4', 'cognome 4')
Come vedete non gli passiamo nessun valore.
E poi ci baserà fare una semplice SELECT.
Enjoy!
database mysql mariadb select concat upper generated column
Commentami!