“In questo post, discuteremo di come utilizzare il vincolo predefinito nella colonna MySQL. Impareremo come utilizzare questo tipo di vincolo nella definizione dello schema della tabella per una colonna specifica."
Se questo sembra interessante, facciamo immergerci e saperne di più.
Sintassi per vincoli predefiniti mysql
Lo snippet seguente mostra la sintassi del vincolo predefinito:
col_name data_type default default_value;
Esploriamo la sintassi sopra.
Iniziamo con la colonna_name, che specifica il nome della colonna su cui si desidera impostare un vincolo predefinito. Definiamo quindi il tipo di dati per detta colonna.
La parola chiave predefinita è seguita dal valore predefinito, che definisce un valore letterale. Pertanto, se si inserisce o si aggiorna una riga che non include un valore per quella colonna, MySQL utilizzerà il valore predefinito definito anziché un tipo null.
È bene tenere presente che il valore predefinito non può essere un'espressione o una funzione.
È una buona pratica definire il vincolo predefinito durante la definizione della tabella. Questo aiuta a preservare i dati nella tabella e nessun dato precedente è impostato su NULL.
Esempio pratico
L'esempio seguente mostra come impostare il vincolo predefinito durante la creazione della tabella.
mysql> crea database zero_day;
Query ok, 1 riga interessata (0.00 sec)
Utilizzare il database di destinazione:
mysql> usa zero_day;
Database modificato
Crea una tabella con lo schema mostrato di seguito:
mysql> crea record di tabelle (
-> id int non null auto_increment chiave primaria,
-> report_name varchar (255) non null,
-> report_date data non null,
-> report_author varchar (100) predefinito 'anonimo',
-> gravità int non null,
-> Controlla (gravità> 0)
->);
La query sopra crea una tabella chiamata_records con varie colonne. Presta attenzione alla colonna report_author. Definiamo un vincolo predefinito e impostiamo il valore predefinito su "Anonimo".
Quindi, se non specifichiamo il valore per quella colonna, MySQL utilizzerà quel valore anziché null.
È possibile confermare lo schema della tabella dopo il fatto che usa il comando disc:
Desc Records;
Questo dovrebbe restituire la definizione della tabella come tabella.
Come puoi vedere, il report_author contiene un valore predefinito mentre il resto delle colonne usa null come valore predefinito.
Per testare questo, possiamo inserire i record come mostrato:
Insert in Records (report_name, report_date, gravità)
valori ('desc-100', '2022-01-20', 6);
L'istruzione insert sopra aggiunge un record alla tabella senza fornire il valore per reports_table.
Questo dovrebbe costringere Mysql a utilizzare il valore predefinito come mostrato:
mysql> seleziona * dai record;
La tabella di output:
+----+-------------+-------------+---------------+----------+
| id | report_name | report_date | report_author | Gravità |
+----+-------------+-------------+---------------+----------+
| 1 | Desc-100 | 2022-01-20 | Anonimo | 6 |
+----+-------------+-------------+---------------+----------+
1 riga in set (0.00 sec)
Come possiamo vedere, la tabella contiene il valore "anonimo" anziché null.
Aggiungi vincolo predefinito sulla tabella esistente
Possiamo anche aggiungere un vincolo predefinito a una tabella esistente usando il comando Alter Tabella come mostrato:
La sintassi del comando è come mostrata:
Alter table table_name
Alterate colonna colonna_name imposta predefinito predefinito_value;
Ad esempio, per aggiungere un vincolo predefinito alla colonna di gravità:
mysql> alter tabella record alter secrevità della colonna Imposta predefinita 5;
Questo dovrebbe aggiornare la colonna di gravità per includere il vincolo predefinito con un valore di 5.
Conclusione
In questo post, abbiamo discusso di come utilizzare il set e utilizzare il vincolo predefinito in una colonna della tabella.