Adicione uma restrição de verificação a uma tabela existente no Oracle

Adicione uma restrição de verificação a uma tabela existente no Oracle
Uma restrição de verificação nos permite definir as expressões lógicas que podem retornar verdadeiras ou falsas. O mecanismo de banco de dados avalia todos os dados inseridos ou atualizados nessa coluna para garantir que ela adere às regras de expressão.

Se os dados seguirem as regras de expressão, o mecanismo de banco de dados aceita os dados e permite a instrução Inserir ou Atualizar. Caso contrário, se os dados não cumprirem as leis, o mecanismo de banco de dados rejeita os dados e nega a operação de inserção ou atualização.

Uma única coluna pode ter uma ou mais restrições de verificação, desde que não entrem em conflito com as outras restrições de cheques existentes. Além disso, a ordem da avaliação da expressão não deve ser assumida.

Da mesma forma, você pode ter mais de uma coluna com uma restrição de cheque.

Regras de uma restrição de cheque no Oracle

Ao definir uma restrição de verificação nos bancos de dados da Oracle, siga estas regras:

  • A restrição de verificação é definida em uma tabela Oracle, não uma visualização.
  • A restrição de verificação deve se referir apenas às colunas nessa tabela e não em tabelas estrangeiras.
  • Uma restrição de cheque não pode ser definida em uma subconsulta.
  • Uma expressão de restrição de verificação não pode incluir funções não determinísticas, funções definidas pelo usuário, mesas aninhadas, colunas pseudo.

Embora seja recomendado usar uma restrição de verificação durante a criação da tabela, você pode encontrar cenários em que precisa adicionar uma restrição de verificação a uma tabela existente.

Vamos discutir como podemos fazer isso em um banco de dados Oracle.

Adicione uma declaração de restrição de verificação

Para adicionar uma restrição de verificação a uma tabela de banco de dados existente, usamos a declaração de restrição ADTE TBALE. A sintaxe é como mostrado:

Alterar tabela tabela_name
Adicionar restrição restant_name check (check_constraint_expression);

Adicione uma restrição de verificação à tabela existente

Vamos demonstrar como adicionar uma restrição de verificação a uma tabela existente. Vamos começar criando uma tabela de teste:

Criar tabela product_stock (
Chave primária do número de produtos_id,
Product_name Varchar2 (255),
Número de Stock_quantity,
Stock_level Varchar2 (255)
);

A consulta anterior cria uma tabela para armazenar as informações do inventário do produto. Em seguida, adicione alguns dados de amostra como mostrado no seguinte:

Inserir em product_stock (product_id, product_name, stock_quantity, stock_level) valores (1, 'product1', 100, 'in');
Inserir em product_stock (product_id, product_name, stock_quantity, stock_level) valores (2, 'product2', 13, 'in');
Inserir em product_stock (product_id, product_name, stock_quantity, stock_level) valores (3, 'product3', 160, 'out');
Inserir em product_stock (product_id, product_name, stock_quantity, stock_level) valores (4, 'product4', 10, 'in');
Inserir em product_stock (product_id, product_name, stock_quantity, stock_level) valores (5, 'product5', 320, 'in');

Tabela resultante

Suponha que queremos garantir que os dados inseridos tenham uma quantidade de stock_ mais de 100. Podemos adicionar uma restrição de verificação da seguinte maneira:

Alter tabela product_stock
Adicionar restrição validate_stock check (stock_quantity> = 100);

Agora, se tentarmos adicionar uma linha com a qualidade de STOD_DIDADE de menos de 100, recebemos um erro da seguinte maneira:

Inserir em valores product_stock (product_id, product_name, stock_quantity, stock_level) (6, 'product6', 60, 'out');

Erro

[23000] [2293] ORA-02293: Não é possível validar (HR.Validate_stock) - Verifique a restrição violada

Conclusão

Aí está! Uma maneira de adicionar uma restrição de verificação a uma tabela existente nos bancos de dados Oracle. Esperamos que você tenha achado este artigo útil.