sql >> Databasteknik >  >> RDS >> Oracle

Oracle hittar en begränsning

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

Liksom alla dataordboksvyer är detta en USER_CONSTRAINTS-vy om du bara vill kontrollera ditt nuvarande schema och en DBA_CONSTRAINTS-vy för administrationsanvändare.

Konstruktionen av begränsningsnamnet indikerar ett systemgenererat begränsningsnamn. Till exempel, om vi anger NOT NULL i en tabelldeklaration. Eller faktiskt en primär eller unik nyckel. Till exempel:

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' för check, 'P' för primär.

Generellt är det en bra idé att ge relationsbegränsningar ett explicit namn. Till exempel, om databasen skapar ett index för primärnyckeln (vilket den kommer att göra om den kolumnen inte redan är indexerad) kommer den att använda begränsningsnamnet oo namnge indexet. Du vill inte ha en databas full av index som heter SYS_C00935191 .

För att vara ärlig bryr sig de flesta inte om att namnge INTE NULL-begränsningar.



  1. DSN-filer och IRI-programvara

  2. PostgreSQL Skapa databas

  3. Vad är användningen av SQL GROUP BY-uttalande?

  4. Hämta utdata från dbms_output.get_lines med JDBC