A constraint DEFAULT permite definir um valor padrão para uma coluna quando nenhum valor é informado durante a inserção de um registro.
Ela facilita o cadastro de informações que possuem valores comuns ou iniciais.
| Sistema | Campo com DEFAULT |
|---|---|
| Usuários | Status = Ativo |
| Pedidos | Situação = Em análise |
| Cadastro | Data de criação atual |
| Sistema | Perfil padrão |
CREATE TABLE tabela (
campo VARCHAR(50)
DEFAULT 'Valor'
);
Criando uma tabela de usuários:
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
ativo BOOLEAN DEFAULT TRUE
);
Caso o campo ativo não seja informado, o valor será TRUE.
INSERT INTO usuarios
(nome)
VALUES
('Maria');
O banco preencherá automaticamente:
ID | Nome | Ativo
1 | Maria | TRUE
É comum utilizar DEFAULT para registrar automaticamente datas.
CREATE TABLE pedidos (
id INT AUTO_INCREMENT PRIMARY KEY,
data_criacao DATETIME
DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE produtos
ALTER COLUMN estoque
SET DEFAULT 0;
Define zero como valor padrão para estoque.
ALTER TABLE produtos
ALTER COLUMN estoque
DROP DEFAULT;
| DEFAULT | NOT NULL |
|---|---|
| Define valor automático | Exige preenchimento |
| Evita ausência de informação | Impede valores NULL |
| Pode trabalhar junto com NOT NULL | Controla obrigatoriedade |
CREATE TABLE clientes (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
cidade VARCHAR(50)
DEFAULT 'São Paulo',
ativo BOOLEAN
DEFAULT TRUE
);