- Categorias:
REFERENTIAL_INTEGRITY_COUNT (função de métricas de dados do sistema)¶
Retorna a contagem de linhas na tabela de origem em que o valor da coluna não tem uma correspondência na tabela referenciada. As linhas sem correspondência são conhecidas como linhas órfãs e representam violações de integridade referencial.
Se você especificar mais de um argumento de coluna, retorna a contagem de linhas em que a combinação das colunas de origem especificadas não corresponde a nenhuma linha na tabela referenciada, com base nas colunas de referência correspondentes.
Sintaxe¶
Para chaves compostas (várias colunas):
Argumentos¶
columnEspecifica uma ou mais colunas na tabela de origem nas quais é feita a verificação da integridade referencial dos valores em relação à tabela referenciada. Quando várias colunas de origem são especificadas, elas formam uma chave composta.
TABLE(ref_table(ref_column))Especifica a tabela (pai) e a(s) coluna(s) referenciadas para validação, usando a sintaxe
TABLE(...):ref_table: o nome totalmente qualificado da tabela referenciada (por exemplo,my_db.my_schema.my_table).ref_column: uma ou mais colunas na tabela referenciada que correspondem às colunas de origem.
O número e a ordem das colunas de origem devem corresponder ao número e à ordem das colunas de referência.
Tipos de dados permitidos¶
As colunas especificadas nos argumentos column e ref_column podem conter qualquer um dos seguintes tipos de dados:
DATE
FLOAT
NUMBER
TIMESTAMP_LTZ
TIMESTAMP_NTZ
TIMESTAMP_TZ
VARCHAR
Retornos¶
A função retorna um valor NUMBER.
Um valor de retorno de 0 significa que cada linha na tabela de origem tem uma correspondência na tabela referenciada. A integridade referencial foi totalmente atendida.
Um valor de retorno de N > 0 significa que há N linhas na tabela de origem que não têm uma linha correspondente na tabela referenciada. Essas N linhas são consideradas órfãs.
Notas de uso¶
Você não pode chamar esta função diretamente. Para saber como associar a função a uma tabela ou visualização para que seja executada em intervalos regulares, consulte Associar uma DMF. Você pode usar a função SYSTEM$DATA_METRIC_SCAN para executar a função REFERENTIAL_INTEGRITY_COUNT em uma tabela sem associá-la.
Os valores NULL na coluna de origem não são contados como violações. As linhas em que o valor da coluna de origem é NULL são excluídas da verificação de integridade referencial. Esse processo segue a semântica da restrição de chave estrangeira (Foreign Key, FK) padrão, em que uma chave estrangeira NULL é considerada válida. Se você precisa monitorar valores NULL na coluna de origem, use a DMF NULL_COUNT junto com esta função.
O número e a ordem das colunas de origem devem corresponder às colunas de referência. Isso é validado quando você associa a função.
Como renomear uma coluna especificada na função REFERENTIAL_INTEGRITY_COUNT quebra a associação entre a função e a tabela ou exibição da coluna. Se você renomear a coluna, deverá reassociar a função à tabela ou exibição.
Não é possível associar esta função à mesma combinação de coluna e tabela de referência mais de uma vez.
Exemplos¶
Verificação de integridade referencial de coluna única¶
Associe a função à tabela salesorders para que ela retorne a contagem de linhas em que sp_id não existe na coluna sp_id da tabela salespeople:
Verificação de integridade referencial de chave composta¶
Associe a função à tabela order_items para que ela retorne a contagem de linhas em que a combinação de order_id e product_id não tem uma linha correspondente na tabela order_products:
Descartar a associação¶
Remova a verificação de integridade referencial da tabela salesorders:
Associar a uma expectativa¶
Associe a função e defina uma expectativa de que a integridade referencial deve ser totalmente atendida (zero linha órfã):
Adicionar uma expectativa a uma associação existente¶
Se a DMF já está associada, adicione uma expectativa usando MODIFY: