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

Oracle намери ограничение

select * from all_constraints
where owner = '<NAME>'
and constraint_name = 'SYS_C00381400'
/

Както всички изгледи на речник на данни, това е USER_CONSTRAINTS изглед, ако просто искате да проверите текущата си схема и изглед DBA_CONSTRAINTS за административни потребители.

Конструкцията на името на ограничението посочва генерирано от системата име на ограничение. Например, ако посочим NOT NULL в декларация на таблица. Или наистина първичен или уникален ключ. Например:

SQL> create table t23 (id number not null primary key)
  2  /

Table created.

SQL> select constraint_name, constraint_type
  2  from user_constraints
  3  where table_name = 'T23'
  4  /

CONSTRAINT_NAME                C
------------------------------ -
SYS_C00935190                  C
SYS_C00935191                  P

SQL>

'C' за проверка, 'P' за първичен.

По принцип е добра идея на релационните ограничения да се даде изрично име. Например, ако базата данни създаде индекс за първичния ключ (което ще направи, ако тази колона вече не е индексирана), тя ще използва името на ограничението oo име на индекса. Не искате база данни, пълна с индекси, наречени като SYS_C00935191 .

Честно казано повечето хора не си правят труда да назовават ограниченията NOT NULL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пътуване през GIMR

  2. Как да архивирате RAC VM

  3. Oracle:LONG или CLOB?

  4. Как да добавите „ON DELETE CASCADE“ в израза ALTER TABLE

  5. От съхранена процедура върнете OUT параметър и OUT курсора и анализирайте резултата (Oracle)