Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como adicionar restrição NOT NULL no MySQL


Se você precisar definir uma coluna MySQL para não aceitar valores nulos, poderá adicionar a restrição NOT NULL no MySQL. Você pode adicionar a restrição NOT NULL ao criar uma tabela de tabela usando a instrução CREATE TABLE ou adicionar a restrição NOT NULL na tabela existente usando a instrução ALTER TABLE. Veja como adicionar a restrição NOT NULL no MySQL.


Como adicionar restrição NOT NULL no MySQL


Aqui estão as etapas para adicionar a restrição NOT NULL para a coluna no MySQL, adicionar a restrição NOT NULL à coluna existente e remover a restrição NOT NULL de uma coluna.

Aqui está a sintaxe para definir a restrição NOT NULL no MySQL quando você cria uma nova tabela.
column_name data_type NOT NULL;

Na declaração acima, você precisa especificar NOT NULL depois de mencionar o column_name e seu data_type

Aqui está um exemplo para adicionar a restrição NOT NULL no 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

Na consulta CREATE TABLE acima, adicionamos uma restrição NOT NULL para quantidade coluna. Quando você insere um valor NULL nesta coluna, o MySQL dará um erro.

Bônus de leitura:Como adicionar restrição padrão no MySQL


ALTER TABLE Adiciona restrição NOT NULL no MySQL


Você também pode adicionar a restrição NOT NULL à coluna existente no MySQL usando a instrução ALTER TABLE … CHANGE. Aqui está a sintaxe para adicionar restrição não nula na tabela existente no MySQL.
ALTER TABLE table_name
CHANGE 
   old_column_name 
   new_column_name column_definition;

Na consulta acima, mencionamos o mesmo nome de coluna para old_column_name e new_column_name. O new_column_name deve ser seguido por sua definição de coluna do tipo de dados e palavra-chave NOT NULL.

Aqui está um exemplo de consulta SQL para adicionar a restrição NOT NULL à coluna existente no 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    |       |
+------------+---------+------+-----+---------+-------+

Na consulta acima, adicionamos a restrição NOT NULL à coluna existente order_date

Bônus de leitura:MySQL selecione as N linhas principais por grupo


Como eliminar a restrição NOT NULL


Você também pode eliminar a restrição NOT NULL usando a instrução ALTER TABLE … MODIFY. Aqui está a sintaxe para remover a restrição NOT NULL no MySQL.
ALTER TABLE table_name
MODIFY column_name column_definition;

Na consulta acima, você precisa especificar o nome e a definição da coluna para a qual deseja remover a restrição NOT NULL.

Aqui está um exemplo para remover a restrição NOT NULL para order_date coluna.
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    |       |
+------------+---------+------+-----+---------+-------+

Bônus de leitura:Como obter dados da última semana no MySQL



A Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!