ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
275
275
EMPFEHLEN
-
Hallo,
kann jemand mir sagen, ob das folgende Befehl richtig ist?
Alter table STANDORT add constraint ck1_STANDORT CHECK (trasse IN (decode (trasse,'h','Haupttrassenstandort','n','Normaltrassenstandort')));
Ich bin für jede Antwort sehr dankbar.
-
Hallo,
Was möchtest du erreichen? Jetzt mal unabhängig von der Definition des Constraints.
Rein syntaktisch ist das Statement richtig.
Aber im Moment testet du auf die gleiche Spalte. Falls das so gewünscht ist, sind im Moment nur die Werte "Hauptstrassenstandort" und "Normalstrassenstandort" gültige Werte für die Spalte "trasse". Ich glaub du möchtest aber was anderes erreichen.
Markus
-
Hallo Markus,
vielen Dank für deine Antwort. Ich möchte eine Gültigkeitsregel für diese Spalte anlegen und möchte auch dazu zeigen, was genau die Abkürzungen bedeuten. Ist so in Ordnung?
Viele Grüsse
-
Hallo,
leider nein, da die Abkürzungen selbst keine gültigen Spalteneinträge sind.
Ich sehe zwei Möglichkeiten das ganze sinnvoll zu lösen:
1) neue Tabelle erzeugen für die Einträge, die deine Spalte annehmen kann. Dort trägst du dann sowohl die Abkürzungen an wie auch den Text dazu. Die Abkürzuung bildet den Primärschlüssel. Dann legst du auf deine Spalte "trasse" einen Fremdschlüssel. Dann kannst du über Joins jederzeit den Text zu deiner "Abkürzung" herausfinden und stellst gleichzeitig sicher, dass keine anderen Werte eingegeben werden dürfen.
Code sql:1 2 3 4 5 6 7 8 9 10 11
CREATE TABLE trassentypen ( typKuerzel VARCHAR2(2) PRIMARY KEY, typBeschreibung VARCHAR2(50) ); INSERT INTO trassentypen (typKuerzel,typBeschreibung) VALUES ('H','Haupttrasse'); INSERT INTO trassentypen (typKuerzel,typBeschreibung) VALUES ('N','Nebentrasse'); ALTER TABLE standort ADD CONSTRAINT fk_trassentypen FOREIGN KEY (trasse) REFERENCES trassentypen (typKuerzel);
2. Wenn es Dir "nur" darum geht, dass der Spalteninhalt dokumentierrt ist, dann machst du folgendes:
Code sql:1 2 3
ALTER TABLE standort ADD CONSTRAINT ck1_STANDORT CHECK ( trasse IN('H','N') ); COMMENT ON COLUMN standort.trasse IS 'Trassentyp: H=Haupttrasse, N=Nebentrasse';
Markus
-
Halllo Markus,
mit deiner Hilfe habe ich das Problem schon erledigt, vielen Dank.
Viele Grüsse
Lei
Ähnliche Themen
-
Frage über .h, .lib
Von pepsi_gx im Forum C/C++Antworten: 2Letzter Beitrag: 13.08.09, 11:24 -
Frage über Steuerzeichen
Von pepsi_gx im Forum C/C++Antworten: 5Letzter Beitrag: 05.08.09, 08:06 -
SQL Check über mehrer Attribute
Von a3quitas im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 13.11.08, 20:52 -
Frage über Datensatzsortierung
Von BladeNeo im Forum PHPAntworten: 3Letzter Beitrag: 06.04.04, 08:21 -
XP-PC aufgehangen, Machine Check Exception, Frage zu DMP-Dateien.
Von wackelpudding im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 10.08.03, 11:38





Zitieren
Login





