Mysql
 sql >> Database >  >> RDS >> Mysql

Come aggiungere un vincolo predefinito in MySQL

A volte potrebbe essere necessario aggiungere un valore predefinito alla colonna o aggiungere una colonna con un valore predefinito in MySQL. Puoi farlo facilmente usando il vincolo predefinito in MySQL. Ecco come aggiungere un vincolo predefinito in MySQL.

Come aggiungere un vincolo predefinito in MySQL

Ecco i passaggi per aggiungere il vincolo predefinito in MySQL. È possibile aggiungere un vincolo predefinito durante la creazione della tabella utilizzando l'istruzione CREATE TABLE o dopo la creazione della tabella utilizzando l'istruzione ALTER TABLE. Esamineremo entrambi questi approcci.

Come aggiungere un vincolo predefinito utilizzando CREATE TABLE

Ecco la sintassi per aggiungere il vincolo predefinito usando l'istruzione CREATE table.

mysql> create table table_name(
    column1 column1_definition DEFAULT default_value,
    column2 column2_definition,
    ...
  );

Nella query SQL precedente, è necessario specificare il nome della tabella nome_tabella . Inoltre, è necessario menzionare DEFAULT dopo la definizione di colonna del campo per il quale si desidera aggiungere il valore predefinito. Devi anche specificare il valore predefinito della tua colonna.

Bonus Lettura:MySQL Seleziona le prime N righe per gruppo

Ecco un esempio per aggiungere un vincolo predefinito in MySQL.

mysql> create table sample_data(
       id int,
       order_date date,
       amount int DEFAULT 0
     );

mysql> insert into sample_data(id, order_date)
       values(1,'2020-08-01');

mysql> select * from sample_data;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-08-01 |      0 |
+------+------------+--------+

Nella query SQL sopra, creiamo sample_data tabella con valore DEFAULT 0 per la colonna importo. Come puoi vedere, quando inseriamo valori in sample_data , non menzioniamo il valore di importo colonna. Tuttavia, MySQL assegna automaticamente il valore predefinito 0 a questa colonna.

Bonus Leggi:Come ottenere i dati della scorsa settimana in MySQL

ALTER TABLE aggiunge una colonna con valore predefinito in MySQL

Allo stesso modo, puoi aggiungere un vincolo predefinito usando l'istruzione ALTER TABLE per le tabelle esistenti. Ecco la sintassi

mysql> ALTER TABLE table_name
          ALTER column_name SET DEFAULT default_value;

Nell'istruzione ALTER TABLE sopra è necessario menzionare nome_tabella, nome_colonna e valore_predefinito

Ecco un esempio per aggiungere un vincolo predefinito utilizzando ALTER TABLE. Supponiamo che tu voglia impostare il valore predefinito per data_ordine colonna nella tabella sample_data sopra

mysql> ALTER TABLE sample_data
       ALTER order_date SET DEFAULT '2020-08-03';

mysql> insert into sample_data(id)
       values(2);

mysql>select * from sample_data;

mysql> select * from sample_data;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-08-01 |      0 |
|    2 | 2020-08-03 |      0 |
+------+------------+--------+

Nella query SQL sopra, abbiamo aggiunto il vincolo predefinito a data_ordine colonna. Successivamente, forniamo solo id valore della colonna nella nostra istruzione INSERT. Tuttavia, MySQL compila automaticamente data_ordine e importo colonne in base ai loro valori predefiniti.

Bonus Lettura:MySQL Copy Database

Come rimuovere il valore predefinito dalla colonna

Se è necessario rimuovere il valore predefinito per la colonna, utilizzare l'istruzione DROP DEFAULT. Ecco la sintassi per la query DROP DEFAULT.

mysql> ALTER TABLE table_name
          ALTER column_name DROP DEFAULT;

Nella query precedente, devi specificare il nome_tabella e nome_colonna per cui vuoi eliminare il vincolo DEFAULT.

Ecco un esempio di vincolo DROP DEFAULT in SQL.

mysql> ALTER TABLE sample_data
       ALTER order_date DROP DEFAULT;

Nella dichiarazione precedente, abbiamo rimosso il vincolo predefinito da data_ordine colonna.

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!