Zum Inhalt springen

REFERENCE entfernen


Jaqueson

Empfohlene Beiträge

Hi,

ich hab mit folgendem Befehl:

CREATE TABLE test(

  NR INTEGER PRIMARY KEY,

  XYZ INTEGER REFERENCES test2(vct)

)

eine Tabelle erstellt.

Jetzt möchte ich die REFERENCE gerne wieder auflösen.

Wie kann ich das machen?

Mit dem ALTER Befehl kann ich da den Datentyp ändern (usw...).

Ich weiß nur nicht wie ich die Reference entfernen kann...

Link zu diesem Kommentar
Auf anderen Seiten teilen

*mal in meine oracle reinhack* :D

CREATE TABLE test2(

VCT INTEGER PRIMARY KEY,

XYZ INTEGER

)

CREATE TABLE test3(

NR INTEGER PRIMARY KEY,

XYZ INTEGER REFERENCES test2(vct)

)

select table_name, constraint_name, column_name, position

from DBA_CONS_COLUMNS

where owner = '<dein_owner>'

and table_name = 'TEST3'

and position is not null

order by constraint_name, position

ALTER TABLE test3

drop CONSTRAINT SYS_C0037775

alles klar? bei weiteren fragen, oder falls was unklar sein sollte, fragen :)

<exkurs>ach ja, REFERENCES erstellt fremdschüssel nach eigenem benamsungsschema, das heisst, foreign key constraints werden meist SYS_laufendenummer benannt. vorzugsweise sollte man mit ALTER TABLE ... ADD CONSTRAINT arbeiten. schönes beispiel sind automatisch ablaufende setup-scripte, die auf mehreren db-instanzen auch andere SYS_...-namen vergeben bekommen, was bei erneuetem DROP dann probleme mit sich bringt.</exkurs>

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

<exkurs>ach ja, REFERENCES erstellt fremdschüssel nach eigenem benamsungsschema, das heisst, foreign key constraints werden meist SYS_laufendenummer benannt. vorzugsweise sollte man mit ALTER TABLE ... ADD CONSTRAINT arbeiten. schönes beispiel sind automatisch ablaufende setup-scripte, die auf mehreren db-instanzen auch andere SYS_...-namen vergeben bekommen, was bei erneuetem DROP dann probleme mit sich bringt.</exkurs>

table-constraints müssen nicht unbeding sein, in diesem fall kann man auch den column constraint mit namen anlegen:

CREATE TABLE test3(

NR INTEGER PRIMARY KEY,

XYZ INTEGER constraint fk1 REFERENCES test2(vct)

)

aber ansonsten stimme ich dir vollkommen zu, constraints sollten _immer_ mit namen angelegt werden.

-j

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich den Befehl ausführe

select table_name, constraint_name, column_name, position

from DBA_CONS_COLUMNS

where owner = '<dein_owner>'

and table_name = 'TEST3'

and position is not null

order by constraint_name, position;

kommt folgender Fehler:

from DBA_CONS_COLUMNS

*

FEHLER in Zeile 2:

ORA-00942: Tabelle oder View nicht vorhanden

Sry, bin aber leider absoluter noob...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...