Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

como verificar todas as restrições em uma tabela no oracle


As restrições em uma tabela no oracle podem ser encontradas usando as visualizações abaixo
user_constraints
all_constraints
dba_constraints
User_cons_columns
all_cons_columns
dba_cons_columns

Podemos usar a view de acordo com o acesso que temos no banco de dados Oracle. Agora vou explicar como verificar todas as restrições em uma tabela no oracle usando os exemplos

Como encontrar todas as restrições em uma tabela no oracle


Vamos primeiro criar as tabelas
SQL> CREATE TABLE "DEPT" ( "DEPTNO" NUMBER(2,0), "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13), CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO") ); Tabela criada. SQL> CREATE TABLE "EMP" ( "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10) Não nulo, "JOB" VARCHAR2(9) não nulo, "MGR" NUMBER(4,0), "HIREDATE " DATE, "SAL" NUMBER(7,2), "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0), CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO"), CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO") REFERÊNCIAS "DEPT" ("DEPTNO") ENABLE ); Tabela criada.

Agora as restrições podem ser encontradas usando as consultas de restrição de seleção do oráculo abaixo
SQL> col CONSTRAINT_NAME formato a20 SQL> col INDEX_NAME formato a20 SQL> col CONSTRAINT_TYPE formato a5 SQL> coluna SEARCH_CONDITION formato a30 SQL>coluna R_CONSTRAINT_NAME formato a20 selecione CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME de user_constraints onde TABLE_NAME='EMP';

Aqui CONSTRAINT_TYPE define o tipo de restrições
P significa Chave Primária Oracle
C significa restrições de verificação ou restrições não nulas
R significa restrições de Chave Estrangeira
U significa restrições de Chave Única


Agora, as colunas de chave primária, chave estrangeira e restrições de chave exclusiva podem ser encontradas usando a consulta abaixo
SQL> coluna OWNER formato a10 SQL> coluna CONSTRAINT_NAME formato a120 SQL> coluna CONSTRAINT_NAME formato a20 SQL> coluna COLUMN_NAME formato a20 SQL> selecione OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION de User_cons_columns onde TABLE_NAME='EMP';

Obteremos valores nulos para a coluna Posição se tivermos uma única coluna na restrição. Se houver várias colunas presentes nas restrições, a Posição especificará a ordem da coluna na restrição

Consultas semelhantes podem ser usadas para selecionar restrições na tabela DEPT
SQL> selecione CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME de user_constraints onde TABLE_NAME='DEPT';
SQL> selecione OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION de User_cons_columns onde TABLE_NAME='DEPT';  

Como encontrar restrição por nome no Oracle

selecione CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME de user_constraints onde CONSTRAINT_NAME='&1'ou selecione o proprietário, CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME de all_constraints onde CONSTRAINT_NAME='&1'

Como verificar as restrições de integridade referencial na tabela

SQL> selecione CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME de user_constraints onde TABLE_NAME='EMP' e CONSTRAINT_TYPE='R';

A tabela pai que está sendo referenciada pode ser encontrada usando o R_CONSTRAINT_NAME
 SQL> selecione CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE,table_name de user_constraints onde CONSTRAINT_NAME='PK_DEPT';

Como verificar a chave primária na tabela

SQL> selecione CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE de user_constraints onde TABLE_NAME='EMP' e CONSTRAINT_TYPE='P'; C_NAME INDEX_NAME CONST ---- ------- ----- PK_EMP PK_EMP P

consulta para encontrar restrições exclusivas em uma tabela no oracle

SQL> CREATE TABLE DEPT_MASTER ( dept_nr NUMBER UNIQUE, dept_name varchar2(100) NOT NULL, dept_status NUMBER(1,0) NOT NULL, created_at date ); Tabela criada. SQL> selecione CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE de user_constraints onde TABLE_NAME='DEPT_MASTER' e CONSTRAINT_TYPE='U';

Outras consultas para restrições

selecione table_name de user_constraints onde (r_constraint_name) in ( selecione constraint_name de user_constraints onde table_name ='T' e constraint_type em ( 'P', 'U'));

Assim, podemos encontrar facilmente todas as restrições na tabela no oracle usando visualizações de dicionário de dados. Podemos então tomar qualquer ação, como modificar, desabilitar, descartar, que queremos tomar nessas restrições. As restrições estão impondo regras de integridade de dados no banco de dados oracle e devemos ter cuidado ao modificá-las/descartá-las.

Espero que gostem deste conteúdo sobre como verificar todas as restrições em uma tabela em um banco de dados oracle. Por favor, forneça feedback para este artigo.

Também lê
drop constraint no Oracle:Podemos eliminar a constraint no oracle usando o comando alter table. podemos descartar a restrição primária, chave estrangeira, verificar, não nula e única com o mesmo comando
Função de coalescência no Oracle:A função de união no oracle retornará a primeira expressão se não for nula, senão fará a união do resto da expressão.
Registro Suplementar no Oracle:O Log Suplementar no Oracle é a informação de coluna adicional necessária para reconstruir o SQL para aplicar a qualquer outro banco de dados
Consulte para localizar dependências de objeto no oracle:Confira Query para localizar dependências de objetos no oracle, dependência de nível filho, dependência de nível pai, localização usando dbms_utility.get_dependency
JSON no banco de dados Oracle:Confira este post sobre como usar JSON no oracle, como criar uma tabela contendo dados JSON, como para extrair, insira os dados JSON no oracle
https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm

Cursos recomendados


Aqui está o bom curso da Udemy para Oracle SQL
Oracle-Sql-Step-by-step:Este curso abrange sql básico, junções, criação de tabelas e modificação de sua estrutura, criação de exibição, união, união -tudo e muitas outras coisas . Um ótimo curso e curso obrigatório para iniciantes em SQL
O Curso Completo de Certificação Oracle SQL :Este é um bom curso para quem quer estar pronto para o trabalho para habilidades de desenvolvedor SQL. Um bom curso explicado
Oracle SQL Developer:Essentials, Tips and Tricks :A ferramenta de desenvolvedor Oracle Sql está sendo usada por muitos desenvolvedores. Este curso nos dá truques e lições sobre como usá-lo efetivamente e se tornar um desenvolvedor sql produtivo
Oracle SQL Performance Tuning Masterclass 2020 :O ajuste de desempenho é uma das habilidades críticas e mais procuradas. Este é um bom curso para aprender sobre isso e começar a fazer o ajuste de desempenho do sql