Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Definando valores padrões

Olá pessoal,

Nos exemplos de definindo valores padrões para os campos é apresentada a cláusula DEFAULT ON NULL SYSDATE, na empresa que trabalho colocamos apenas DEFAULT + "VALOR PADRÃO" , no exemplo acima ficaria DEFAULT SYSDATE. Existe diferença nesses dois comandos ?

1 resposta
solução!

Olá Sabrina, tudo bem?

A diferença entre as duas cláusulas é que ao utilizar DEFAULT ON NULL SYSDATE o campo nunca ficará NULL mesmo que seja passado NULL no comando insert, e ao utilizar o DEFAULT SYSDATE e realizar o comando insert passando o valor NULL, o campo ficará com o valor NULL.

  • DEFAULT ON NULL SYSDATE:
CREATE TABLE teste (
    ID NUMBER(5) INT, 
    nome VARCHAR2(100) NOT NULL, 
    data DATE DEFAULT ON NULL SYSDATE);

INSERT INTO teste (ID,nome,data) 
    VALUES (1,'Danielle',NULL);

SELECT * FROM teste;

ID   nome           data
-----------------------------------------------
 1    Danielle       21-11-2020
  • DEFAULT SYSDATE:
CREATE TABLE teste (
    ID NUMBER(5) INT, 
    nome VARCHAR2(100) NOT NULL, 
    data DATE DEFAULT SYSDATE);

INSERT INTO teste (ID,nome,data) 
    VALUES (1,'Danielle',NULL);


SELECT * FROM teste;

ID   nome           data
-----------------------------------------------
 1    Danielle       NULL

Espero ter ajudado e bons estudos!