Wie füge ich diese Fremdschlüssel in meine Datenbanktabelle ein?

MrKartoffel

Neuer Benutzer
Beiträge
4
Hallo, ich arbeite gerade zum ersten mal mit dem Oracle SQL Developer. Bis jetzt hat auch alles gut funktioniert, ich komme nur bei der letzten Aufgabe nicht weiter. Ich soll meine Fremdschlüssel irgendwie implementieren. Ich habe das so gemacht :

hastebin

unten bei dem Alter Befehl bleibt er immer hängen und sagt mir folgendes : "PERSID": ungültiger Bezeichner "%s: invalid identifier"

Was muss ich ändern, damit ich die FKs einfügen kann? Im skript sowie im Uni Wiki wird das auch 1:1 so gemacht

Edit: Es soll also der Primary Key aus der personen Tabelle( PersID ) in die projekte Tabelle geladen werden, als FK.
 
Werbung:
ich kann Dir zeigen, wie es in PostgreSQL geht. Sollte mehr oder wenig analog in Oracle gehen.

Code:
test=# create table m(id int primary key);
CREATE TABLE
test=# create table s (m_id int references m);
CREATE TABLE
test=# create table s2 (m_id int);
CREATE TABLE
test=# alter table s2 add foreign key (m_id) references m;
ALTER TABLE
test=#

was ich grad sehe: deine Tabelle projekte hat keine Spalte PersID. Das erklärt dann auch den Fehler.
 
ich kann Dir zeigen, wie es in PostgreSQL geht. Sollte mehr oder wenig analog in Oracle gehen.

Code:
test=# create table m(id int primary key);
CREATE TABLE
test=# create table s (m_id int references m);
CREATE TABLE
test=# create table s2 (m_id int);
CREATE TABLE
test=# alter table s2 add foreign key (m_id) references m;
ALTER TABLE
test=#

was ich grad sehe: deine Tabelle projekte hat keine Spalte PersID. Das erklärt dann auch den Fehler.
Willst du damit sagen, dass ich neben diesem Befehl zusätzlich noch den Fremdschlüssel selber eingeben muss? Ich dachte dieser Befehl erstellt automatsich eine FK Spalte in projekte und bezieht sich auf PersID aus personen

Hier habe ich das her:
Datenbanken / ALTER TABLE-Anweisung (SQL, Oracle) | Datenbanken Online Lexikon

Beispiel 4.
 
der alter table - Befehl macht nix weiter, als auf eine bereits vorhandene Spalte (oder Spalten) einen entsprechenden Constraint zu legen.Die Spalte muß aber schon da sein.
 
Constraint war nochmal sowas wie Primary key, foreign key, unique key, not null usw. oder?

Also soll ich jetzt eine Spalte PersID ind personen erstellen ohne so ein constraint? Das wird ja später in der Alter methode gemacht, richtig?
 
Ja. Einmal ALTER TABLE um eine neue Spalte zu erstellen und einmal ALTER TABLE um den Constraint zu setzen. Oder halt in Deinem Script da beim CREATE TABLE gleich richtig machen - falls das nicht zu einfach ist ;-)
 
Werbung:
Zurück
Oben