Usare le Generated Column in MariaDB e MySQL

Mattepuffo's logo
Usare le Generated Column in MariaDB e MySQL

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!


Condividi

Commentami!