Drop Constraint

05/03/2010 - 15:11 von Nicole Wagner | Report spam
Hallo User,


ich habe in einer gefuellten und vernetzten Tabelle 2 Spalten
miteinander verbunden und gesagt, sie moegen "unique" sein.

Leider habe ich die falschen Spalten miteinander verbunden.
Leider erst nach einiger Zeit bemerkt.

EINE der verbundenen Spalten enthaelt einen Fremdschluessel.
ich habe jetzt:
FK + Feld1 => unique,
ich will aber:
FK + Feld2 => unique
Wie werde ich dieses falsche Unique wieder los?

Ich kann NICHT:
- die unique-Zeile einfach 'drop'
- den Index dazu 'drop'
- Tabelle 'recreate'


Was kann ich tun?
Klarerweise will ich moeglichst wenig loeschen.

Eine Firebird DB.


Nicole
 

Lesen sie die antworten

#1 Marian Aldenhövel
06/03/2010 - 10:40 | Warnen spam
Hallo,

Was kann ich tun?



Das, was im Betreff steht.

ALTER TABLE Tabelle DROP CONSTRAINT Constraint;

Es ist empfehlenswert den Constraints vernünftige Namen zu geben, nach
einer tragfàhigen Konvention (bricht dann leider gerne an der
Maximallànge der Bezeichner zusammen :-). Mindestens aber überhaupt
eigene Namen, und sie nicht automatisch erzeugen lassen.

Daraus folgt, daß man UNIQUES und dergleichen nicht im CREATE TABLE
deklarieren sollte, sondern als separates ADD CONSTRAINT.

Hauptnachteil der Automatik ist, daß dieselben Objekte auf verschiedenen
Installationen desselben Datenbankschemas nicht notwendigerweise gleich
heißen. Das hàngt dann oft davon ab, was man vorher alles erzeugt und
geDROPt hat und das ist ja nicht für alle Installationen gleich.

Also muss man dann die Systemtabellen nach dem Namen des Constraints
durchforsten.

Ciao, MM

Ähnliche fragen