sql >> Database >  >> RDS >> Oracle

Oracle vindt een beperking

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

Zoals alle datadictionary-weergaven, is dit een USER_CONSTRAINTS-weergave als u alleen uw huidige schema wilt controleren en een DBA_CONSTRAINTS-weergave voor beheerders.

De constructie van de beperkingsnaam geeft een door het systeem gegenereerde beperkingsnaam aan. Als we bijvoorbeeld NOT NULL specificeren in een tabeldeclaratie. Of inderdaad een primaire of unieke sleutel. Bijvoorbeeld:

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' ter controle, 'P' voor primair.

Over het algemeen is het een goed idee om relationele beperkingen een expliciete naam te geven. Als de database bijvoorbeeld een index maakt voor de primaire sleutel (wat het zal doen als die kolom nog niet is geïndexeerd), zal het de beperkingsnaam gebruiken oo de index een naam geven. U wilt geen database vol indexen met de naam SYS_C00935191 .

Om eerlijk te zijn, nemen de meeste mensen niet de moeite om NOT NULL-beperkingen te noemen.



  1. hoe toegang te krijgen tot de opdrachtregel voor xampp in Windows

  2. PDO mysql:Hoe weet ik of het invoegen gelukt is?

  3. Hoe dubbelzinnige kolomnamen op te lossen bij het ophalen van resultaten?

  4. SQL Server Databasenaam wijzigen