2013-08-20 7 views
5

i eine Tabelle wie folgt in Oracle 10g erstellt fallen: wollenwie unbenannte Primärschlüsselbedingung

CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY, 
StudName VARCHAR2(40) 
); 

Und nun Primärschlüssel aus studId entfernen, ohne diese Spalte zu fallen. Ich suchte danach und fand Dropping unnamed constraints aber es konnte mir auch nicht helfen. Sys.columns-Tabelle oder -Ansicht konnte nicht abgerufen werden.

Dank

Antwort

0

Die Frage, die Sie isn verlinken auf Nicht für Oracle. Die Systemansicht USER_CONSTRAINTS enthält eine Liste aller Einschränkungen. Das P in der CONSTRAINT_TYPE-Spalte gibt an, dass es ein Primärschlüssel ist; Sie können dies verwenden, um andere Einschränkungen zu finden.

Sie können diese Ansicht verwenden, um die DDL zu generieren, die zum Löschen der Abhängigkeit (oder zum Anzeigen anderer Informationen) erforderlich ist.

Zum Beispiel:

CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY, 
StudName VARCHAR2(40) 
); 

Table created. 


select 'alter table ' || table_name 
     || ' drop constraint ' || constraint_name || ';' 
    from user_constraints 
where table_name = 'STUDENTTBL' 
    and constraint_type = 'P'; 

'ALTERTABLE'||TABLE_NAME||'DROPCONSTRAINT'||CONSTRAINT_NAME||';' 
---------------------------------------------------------------------- 

alter table STUDENTTBL drop constraint SYS_C0017725; 
+0

Ja, Sie haben Recht. aber mein Punkt war die gleiche logische Sache, die ich versuchte, diesen Constraint-Namen zu finden. Ich konnte es nicht holen. Danke für Ihre Hilfe. Kann nicht wählen. –

Verwandte Themen