Preenchimento automático de campos
Por Luiz Paulo de Oliveira Santos
Data de Publicação: 23 de Novembro de 2006
Ola, hoje estaremos falando de um assunto simples, mas que alguns desenvolvedores deixam de utilizar tal facilidade. A clausula DEFAULT.
Através dessa clausula podemos atribuir previamente um conteúdo à um campo caso o citado campo esteja NULL.
É muito útil para se atribuir valores de preenchimento padrão, como estado para campo UF, pode-se previamente atribuir um valor DEFAULT como sendo o conteúdo que contemple a maioria dos registros.
Essa clausula é atribuída após a definição do campo e segue a seguinte sintaxe:
CREATE TABLE PESSOAS ( NOME VARCHAR(80), CIDADE VARCHAR(25), UF CHAR(2) DEFAULT 'DF' );
No momento da criação da tabela PESSOAS, informamos ao banco que se nenhum valor for atribuído ao campo UF ele automaticamente será preenchido por DF, desta forma não permitindo um campo em estado de NULL.
Obviamente também podemos utilizar o DEFAULT na inclusão de um campo.
Exemplo:
ALTER TABLE SERVICES ADD SITUACAO SMALLINT DEFAULT 1
Em conjunto com o DEFAULT podemos utilizar duas constantes do SQL:
CURRENT_DATE
CURRENT_TIME
Que são respectivamente DATA e HORA do servidor, desta forma ao se utilizar as constantes acima como DEFAULT pode-se automaticamente atribuir a DATA e HORA no momento da INSERÇÃO do registro na tabela. Pode ser muito útil para LOGs por exemplo.
A sintaxe de CURRENT_DATE e de CURRENT_TIME podem sofrer alterações, de acordo com o banco, consulte o manual do seu banco SQL antes de implementar.
E mais, alguns bancos permitem que se utilize uma UDF (User Defined Function) ou função definida pelo usuário para executar um código durante o procedimento de inserção.
Nota importante: Campos onde temos índices que não aceitam repetição de valores (com UNIQUE, por exemplo) não devem receber valores por DEFAULT, pois poderão gerar entradas duplicadas e provocar anomalias imprevisíveis (de erros a não inserção ou alteração de dados), em algumas situações. Logo quanto ao uso do DEFAULT com chaves primárias, prefiro nem tecer comentários à respeito. Portanto cuidado com o uso do DEFAULT.
Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS
Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.
Artigos Publicados
- Entendendo os conceitos sobre mapeamento objeto/relacional
15/03/2010 - Como calcular o tamanho de um banco de dados através do número de registros?
30/11/2009 - Como que eu configuro o MySQL para que os meus usuários tenham acesso?
26/11/2009 - Mysql replicator
24/11/2009 - Importar dados para MySQL
18/11/2009 - Importar estrutura de um arquivo SQL
17/11/2009 - MySQL - Gravando Imagens em uma tabela
02/10/2009 - Retorno status de comandos no MySQL
01/10/2009 - Recuperação da senha de root em MySQL
30/09/2009 - Performance e Timeout
29/09/2009 - Script de Backup para Banco de Dados Firebird
04/01/2009 - Sumarizações com **GROUP BY** e **WITH ROLLUP**
21/07/2008 - GREEN SQL
17/06/2008 - SELECT com ordem aleatória
12/06/2008 - MySQL é da SUN!
28/05/2008 - Otimizando consultas no PostgreSQL - Comando EXPLAIN
27/04/2008 - Back up de base de dados SQL
05/03/2007 - Linguagem dentro da linguagem - parte 3 - DDL
09/02/2007 - Linguagem dentro da linguagem - parte 2 - DML
06/02/2007 - Linguagem dentro da Linguagem - parte 1
22/01/2007 - REVOKE: Controle de direitos no SQL - parte 2
18/01/2007 - Cursor
12/01/2007 - Restauração MySQL
Por Cristina Otsuka
05/12/2006 - GRANT: Controle de direitos no SQL - parte 1
29/11/2006 - Backup no MySQL
Por Cristina Otsuka
27/11/2006 - Preenchimento automático de campos
23/11/2006 - Projeto Firebird lança Firebird 2.0
14/11/2006 - Limpando tabelas
28/10/2006 - VIEW
27/10/2006 - Overview PostgreSQL
17/10/2006 - Acessando Firebird SQL com Open Source
11/10/2006 - Novidades do Firebird no mundo
02/10/2006 - NULL ou não NULL, eis a questão!
26/09/2006 - Performance no MySQL
25/09/2006 - INSERT com SELECT
17/09/2006









