Problem:
Du vill hitta namnen på begränsningarna i en tabell i Oracle.
Exempel:
Vi vill visa namnen på begränsningarna i tabellen student
.
Lösning:
select CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME from USER_CONSTRAINTS where TABLE_NAME='STUDENT';
Här är resultatet:
CONSTRAINT_NAME | CONSTRAINT_TYPE | TABLE_NAME |
---|---|---|
SYS_C007376 | R | STUDENT |
SYS_C007374 | P | STUDENT |
SYS_C007375 | U | STUDENT |
SYS_C007372 | C | STUDENT |
Diskussion:
I Oracle använder du vyn user_constraints
för att visa namnen på begränsningarna i databasen. Kolumnen constraint_name
innehåller namnet på begränsningen, constraint_type
anger typen av begränsning och table_name
innehåller namnet på tabellen som begränsningen tillhör. I kolumnen constraint_type är värdet "R" för den främmande nyckeln, "P" är för primärnyckeln, "U" är för unikhetsbegränsningen och "C" är för begränsningskontrollen. I vårt exempel finns det en begränsning i tabellen student
av typen P (primärnyckel) vars namn är SYS_C007374
.