Se è necessario impostare una colonna MySQL per non accettare valori null, è possibile aggiungere il vincolo NOT NULL in MySQL. È possibile aggiungere il vincolo NOT NULL quando si crea una tabella tabella utilizzando l'istruzione CREATE TABLE o aggiungere il vincolo NOT NULL nella tabella esistente utilizzando l'istruzione ALTER TABLE. Ecco come aggiungere il vincolo NOT NULL in MySQL.
Come aggiungere il vincolo NOT NULL in MySQL
Ecco i passaggi per aggiungere il vincolo NOT NULL per la colonna in MySQL, aggiungere il vincolo NOT NULL alla colonna esistente e rimuovere il vincolo NOT NULL da una colonna.
Ecco la sintassi per definire il vincolo NOT NULL in MySQL quando crei una nuova tabella.
column_name data_type NOT NULL;
Nella dichiarazione precedente, devi specificare NOT NULL dopo aver menzionato il nome_colonna e il suo tipo_dati
Ecco un esempio per aggiungere il vincolo NOT NULL in MySQL.
mysql> create table product_sales( id int, amount int NOT NULL, order_date date ); mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | YES | | NULL | | +------------+---------+------+-----+---------+-------+ mysql> insert into product_sales(id, order_date) values(1,'2020-08-01'); ERROR 1364 (HY000): Field 'amount' doesn't have a default value
Nella query CREATE TABLE sopra, abbiamo aggiunto un vincolo NOT NULL per importo colonna. Quando inserisci un valore NULL in questa colonna, MySQL visualizzerà un errore.
Bonus Lettura:come aggiungere un vincolo predefinito in MySQL
ALTER TABLE Aggiungi vincolo NOT NULL in MySQL
Puoi anche aggiungere il vincolo NOT NULL alla colonna esistente in MySQL usando l'istruzione ALTER TABLE … CHANGE. Ecco la sintassi per aggiungere il vincolo non nullo nella tabella esistente in MySQL.
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;
Nella query precedente, menzioniamo lo stesso nome di colonna per old_column_name e new_column_name. Il new_column_name deve essere seguito dalla sua column_definition del tipo di dati e dalla parola chiave NOT NULL.
Ecco un esempio di query SQL per aggiungere il vincolo NOT NULL alla colonna esistente in MySQL.
mysql> ALTER TABLE product_sales CHANGE order_date order_date DATE NOT NULL; mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | NO | | NULL | | +------------+---------+------+-----+---------+-------+
Nella query precedente, abbiamo aggiunto il vincolo NOT NULL alla colonna esistente data_ordine
Bonus Lettura:MySQL Seleziona le prime N righe per gruppo
Come eliminare il vincolo NOT NULL
Puoi anche eliminare il vincolo NOT NULL usando l'istruzione ALTER TABLE … MODIFY. Ecco la sintassi per rimuovere il vincolo NOT NULL in MySQL.
ALTER TABLE table_name MODIFY column_name column_definition;
Nella query precedente, è necessario specificare il nome della colonna e la definizione per cui si desidera rimuovere il vincolo NOT NULL.
Ecco un esempio per rimuovere il vincolo NOT NULL per data_ordine colonna.
mysql> ALTER TABLE product_sales MODIFY order_date DATE; mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | YES | | NULL | | +------------+---------+------+-----+---------+-------+
Bonus Leggi:Come ottenere i dati della scorsa settimana in MySQL
Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!