Oracle
 sql >> база данни >  >> RDS >> Oracle

как да проверите всички ограничения на таблица в oracle

Ограниченията за таблица в oracle могат да бъдат намерени с помощта на изгледите по-долу
user_constraints
all_constraints
dba_constraints
User_cons_columns
all_cons_columns
dba_cons_columns

Можем да използваме изгледа според достъпа, който имаме в базата данни на Oracle. Сега ще обясня как да проверя всички ограничения на таблица в oracle с помощта на примерите

Как да намеря всички ограничения на таблица в oracle

Нека първо създадем таблиците

SQL> СЪЗДАЙТЕ ТАБЛИЦА "DEPT" ( "DEPTNO" NUMBER(2,0), "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13), ОГРАНИЧЕНИЕ "PK_DEPT" ПЪРВИЧЕН КЛЮЧ ("DEPTNO") ); Таблицата е създадена. SQL> СЪЗДАЙТЕ ТАБЛИЦА "EMP" ( "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10) Не е нула, "JOB" VARCHAR2(9) не е null, "MGR" NUMBER(4,0), "HIREDATE " ДАТА, "SAL" NUMBER(7,2), "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0), ОГРАНИЧЕНИЕ "PK_EMP" ПРАВИЛЕН КЛЮЧ ("EMPNO"), ОГРАНИЧЕНИЕ "FK_DEPTNO" FOREIGN КЛЮЧ ("DEPTNO") РЕФЕРЕНЦИИ "DEPT" ("DEPTNO") ENABLE ); Таблицата е създадена.

Сега ограниченията могат да бъдат намерени с помощта на заявките за ограничения за избор на оракул по-долу

SQL> col CONSTRAINT_NAME формат a20 SQL> col INDEX_NAME формат a20 SQL> col CONSTRAINT_TYPE формат a5 SQL> колона SEARCH_CONDITION формат a30 SQL>колона R_CONSTRAINT_NAME формат a20 изберете CONSTRAINT_NAME C_NAME,INDEX_NAME,constraint_CONSTRAINT_NAME,CONSTRAINT_NAME,CONSTRAINT_NAME,CONSTRAINT_CONDITION,CONSTRAINT_NAME,CONSTRAINT_CONDITION формат a30 „EMP“;

Тук CONSTRAINT_TYPE дефинирайте типа ограничения
P означава първичен ключ на Oracle
C означава ограничения за проверка или не нулеви ограничения
R означава ограничения на външния ключ
U означава ограничения на уникален ключ


Сега колоните с ограничения за първичен ключ, външен ключ и уникални ключове могат да бъдат намерени с помощта на заявката по-долу

SQL> колона OWNER формат a10 SQL> колона CONSTRAINT_NAME формат a120 SQL> колона CONSTRAINT_NAME формат a20 SQL> колона COLUMN_NAME формат a20 SQL> изберете OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION от User_cons_columns='pre TABLE';  

Ще получим нулеви стойности за колоната Позиция, ако имаме една колона в ограничението. Ако има множество колони в ограниченията, позиция ще посочи реда на колоната в ограничението

Подобни заявки могат да се използват за избор на ограничения в DEPT Table

SQL> изберете CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME от user_constraints, където TABLE_NAME='DEPT';
SQL> изберете OWNER,CONSTRAINT_NAME,COLUMN_NAME,POSITION от User_cons_columns;<, където TDEPTLE_NAME; /предварително>  

Как да намеря ограничение по име в Oracle

изберете CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME от потребителски_ограничения, където CONSTRAINT_NAME='&1'или изберете собственик, CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME, където CONSTRAINT_NAME='&1'или изберете собственик, CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME,R_CONSTRAINT_NAME>откъдето CONSTRAINT_CONSTRAINT_NAME'R_CONSTRAts от където 

Как да проверите ограниченията за референтна цялост в таблицата

SQL> изберете CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME от user_constraints, където TABLE_NAME='EMP' и CONSTRAINT_TYPE='R';

Таблицата-родител, към която се препраща, може да бъде намерена с помощта на R_CONSTRAINT_NAME

 SQL> изберете CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE,table_name от потребителски_ограничения, където CONSTRAINT_NAME='PK_DEPT';

Как да проверя първичния ключ в таблицата

SQL> изберете CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE от user_constraints, където TABLE_NAME='EMP' и CONSTRAINT_TYPE='P'; C_NAME INDEX_NAME CONST ---- ------- ----- PK_EMP PK_EMP P

заявка за намиране на уникални ограничения за таблица в oracle

SQL> СЪЗДАВАНЕ НА ТАБЛИЦА DEPT_MASTER ( dept_nr НОМЕР УНИКАЛЕН, dept_name varchar2(100) НЕ NULL, dept_status NUMBER(1,0) NOT NULL, created_at date ); Таблицата е създадена. SQL> изберете CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE от user_constraints, където TABLE_NAME='DEPT_MASTER' и CONSTRAINT_TYPE='U';

Други заявки за ограничения

изберете table_name от user_constraints where (r_constraint_name) in ( изберете constraint_name от user_constraints, където table_name ='T' и constraint_type in ('P', 'U') );

Така че можем лесно да намерим всички ограничения на таблицата в oracle, използвайки изгледи на речника на данни. След това можем да предприемем каквото и да е действие като модифициране, деактивиране, пускане, искаме да поемем тези ограничения. Ограниченията налагат правилата за целостта на данните в базата данни на Oracle и трябва да внимаваме, докато ги променяме/изпускаме.

Надявам се да ви хареса това съдържание за това как да проверите всички ограничения на таблица в база данни на Oracle. Моля, дайте обратна връзка за тази статия.

Също чете
отпуснете ограничението в Oracle :Можем да премахнем ограничението в oracle, като използваме команда alter table. можем да пуснем първичен, външен ключ, проверка, а не null и уникално ограничение със същата команда
Функция Coalesce в Oracle :Функцията Coalesce в oracle ще върне първия израз, ако не е null, иначе ще направи обединяването на останалите на израза.
Допълнително регистриране в Oracle:Допълнително регистриране в Oracle е допълнителната информация за колони, необходима за реконструкция на SQL, за да се приложи към всяка друга база данни
Запитване за намиране на зависимости на обекти в oracle:Разгледайте за Query, за да намерите зависимости на обект в oracle, зависимост на ниво дете, зависимост на ниво родител, намиране с помощта на dbms_utility.get_dependency
JSON в базата данни на Oracle:Вижте тази публикация за това как да използвате JSON в oracle, как да създадете таблица, съдържаща JSON данни, как за да извлечете, вмъкнете JSON данните в oracle
https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm

Препоръчани курсове

Ето хубавия курс на Udemy за Oracle SQL
Oracle-Sql-Step-by-step :Този курс обхваща основния sql, присъединяването, Създаването на таблици и промяната на структурата им, Създаване на изглед, Обединение, Обединение - всичко и много други неща . Страхотен курс и задължителен курс за SQL начинаещи
Пълният курс за сертифициране на Oracle SQL :Това е добър курс за всеки, който иска да бъде готов за работа за SQL разработчици. Приятно обяснен курс
Oracle SQL Developer:Основни неща, съвети и трикове :Инструментът за разработчици на Oracle Sql се използва от много разработчици. Този курс ни дава трикове и уроци как да го използваме ефективно и да станем продуктивен sql разработчик
Мастърклас за настройка на производителността на Oracle 2020 г. :Настройката на производителността е едно от критичните и най-търсените умения. Това е добър курс, за да научите за него и да започнете да правите настройка на производителността на sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Конвертирайте OracleParameter.Value в Int32

  2. Как мога да въведа множество условия в оператора LIKE?

  3. Безплатни ES за 11.2.0.4 и 12.2 Дата на пускане

  4. Разрешете PLS-00323 грешка в Oracle

  5. ORA-01017 Невалидно потребителско име/парола при свързване към 11g база данни от 9i клиент