1
resposta

Tipo de dado auto incremento oracle database

Qual a diferença do Generated Always e Generated by default on null?

1 resposta

Boa noite Luis! Tudo bem com você?

Obrigado pela pergunta. Ambas abordagens são usadas para gerar valores automaticamente para uma coluna, mas têm comportamentos ligeiramente diferentes:

  • Generated Always: Quando você define uma coluna como "Generated Always", o Oracle sempre irá gerar um valor para essa coluna, independentemente do que você tentar inserir. Isso significa que mesmo que você tente inserir um valor manualmente para essa coluna, o Oracle irá ignorar o valor inserido e gerar um novo automaticamente. É útil quando você quer garantir que a coluna sempre tenha um valor gerado automaticamente, sem exceções.

    • Exemplo prático: Imagine que você tem uma tabela de pedidos e deseja que o número do pedido seja sempre gerado automaticamente. Com "Generated Always", mesmo que alguém tente inserir um número de pedido específico, o Oracle irá substituir pelo valor gerado automaticamente.
  • Generated By Default On Null: Com essa opção, o Oracle irá gerar um valor automaticamente apenas se você inserir um valor nulo na coluna. Se você inserir um valor diferente de nulo, o Oracle aceitará esse valor e não gerará um novo. Isso oferece mais flexibilidade caso você precise inserir manualmente um valor específico em certas situações.

    • Exemplo prático: Suponha que você tenha uma tabela de clientes e, em alguns casos especiais, deseja inserir manualmente um ID específico para um cliente. Usando "Generated By Default On Null", você pode inserir IDs manualmente quando necessário, mas, por padrão, o Oracle irá gerar um ID automaticamente quando você não fornecer um.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado