[HSQLDB] Problem mit Foreign Keys

Morpheus(CH)

Cadet 2nd Year
Registriert
Sep. 2010
Beiträge
18
Guten Tag allerseits,
ich will eine kleine Datenbank mit HSQLDB erstellen, was ja eigentlich nicht so schwer sein sollte.
Nun habe ich ein kleines Problem mit „foreign keys“. Die Tabellen zu erstellen und auszufüllen hat soweit geklappt.
Nur das Problem ist wenn ich in einer Tabelle gerne einen „foreign key“ hätte, erhalte ich jedes Mal eine Fehlermeldung.
Zum Beispiel habe ich folgende Tabelle erstellt:

//Ort
create table Ort(
OrtID int not null primary key,
Ort char (25) not null,
PLZ int not null
)

Wenn ich jetzt folgende Tabelle erstelle wo die OrtID als „foreign key“ enthalten sein sollte, klappt es einfach nicht.

//Veranstaltunsstaette
create table Veranstaltungsstaette(
VeranstaltungsstätteID int not null primary key,
Name char (25) not null,
foreign key (OrtID) references Ort (OrtID) on delete cascade,
Strasse char (20) not null
)

Muss natürlich noch erwähnen, dass ich schon eine Weile nicht mehr mit Datenbanken gearbeitet habe.
Aber ich finde den Fehler einfach nicht.

Hier noch die Fehlermeldung.
user lacks privilege or object not found: ORT in statement [create table Veranstaltungsstaette(
VeranstaltungsstätteID int not null primary key, Name char (25) not null, foreign key (Ort) references Ort (OrtID) on delete cascade, Strasse char (20) not null )] / Error Code: -5501 / State: 42501

Wäre um jede Hilfe echt froh. Danke!
 
Es ist zwar bei mir auch etwas her, aber wird das nicht so angegeben? :) - Ort.OrtID

Grüße
Eugl3na
 
Danke für deine Hilfe.
Aber ist das nicht der Befehl für Java?
Wenn ich z.B. in Eclipse mit SQL-Befehlen arbeite, wirds so weit ich mich erinnern kann
mit . geschrieben.

Hab es getestet im HSQLDB Manager, nun krieg ich folgenden Fehler :-( :
invalid schema name: ORT / Error Code: -4850 / State: 3F000
 
Ort.OrtID
^ ^
| |
Table.Spalte

Das ist schon so korrekt ich glaube das Problem ist on delete cascade
 
Hab jetzt mal den Code von einem älteren Projekt angeschaut und habe den Fehler gefunden! :)
Die Klammern waren richtg (also ohne .). Das Problem war nur die Spalte muss zuerst "von Hand" erstellt werden und im Anschluss wird der Key zugewiesen. Das sieht dann in etwa so aus:

create table Veranstaltungsstaette(
VeranstaltungsstätteID int not null primary key,
Name char (25) not null,
Strasse char (20) not null
Ort int not null,
foreign key (Ort) references Ort (OrtID) on delete cascade,

)

Danke noch für die Inputs! :cool_alt:

MfG Morpheus(CH)
 
Zurück
Oben