basmati123
Grünschnabel
Hallo,
ich versuche gerade mit mysql drei tabellen zu erstellen, die ich untereinander mit foreign keys verknüpfe.
Das ganze findet in einer java-datei statt.
Dies tut wohl nichts zur Sache, da ich es auch schon über phpmyadmin versucht habe, aber auch da die tabellen nicht generiert bekomme.
tabellen sehen so aus:
cd(kuenstlername, cdtitel, erscheinungsjahr, genre art)
kuenstler(kuenstlername, personenanzahl, gruendungsjahr, cdanzahl)
songs(cdtitel, songname, songlaenge)
primary keys:
cd: kuenstlername, cdtitel
kuenstler: kuenstlername
songs: cdtitel, songname
foreign keys:
kuenstler: kuenstlername mit bezug auf cd(kuenstlername)
songs: cdtitel mit bezug auf cd(cdtitel)
wenn ich das ganze über einen ftp-server laufen lasse mit meiner java datei, dann erkennt er gerade mal, dass die tabelle cd noch nicht da ist und erzeugt aber daraufhin keine neue, zu den weiteren kommt er nicht mal
unter phpmyadmin kann ich cd und kuenstler erzeugen, songs aber dann nicht mehr
fehlermeldung:
#1005 - Can't create table './songs.frm' (errno: 150)
wo liegt der fehler!?
hier der code:
vielen dank!
ich versuche gerade mit mysql drei tabellen zu erstellen, die ich untereinander mit foreign keys verknüpfe.
Das ganze findet in einer java-datei statt.
Dies tut wohl nichts zur Sache, da ich es auch schon über phpmyadmin versucht habe, aber auch da die tabellen nicht generiert bekomme.
tabellen sehen so aus:
cd(kuenstlername, cdtitel, erscheinungsjahr, genre art)
kuenstler(kuenstlername, personenanzahl, gruendungsjahr, cdanzahl)
songs(cdtitel, songname, songlaenge)
primary keys:
cd: kuenstlername, cdtitel
kuenstler: kuenstlername
songs: cdtitel, songname
foreign keys:
kuenstler: kuenstlername mit bezug auf cd(kuenstlername)
songs: cdtitel mit bezug auf cd(cdtitel)
wenn ich das ganze über einen ftp-server laufen lasse mit meiner java datei, dann erkennt er gerade mal, dass die tabelle cd noch nicht da ist und erzeugt aber daraufhin keine neue, zu den weiteren kommt er nicht mal
unter phpmyadmin kann ich cd und kuenstler erzeugen, songs aber dann nicht mehr
fehlermeldung:
#1005 - Can't create table './songs.frm' (errno: 150)
wo liegt der fehler!?
hier der code:
Code:
// CD ERZEUGEN UND FUELLEN
try {
s.executeUpdate("drop table cd;");
}
catch (Exception e) {
out.println("Tabelle 'cd' nicht da: kein DROP");
}
s.executeUpdate("create table cd(kuenstlername char(11), cdtitel char(11), erscheinungsjahr int(4), genre char(10), art char(10), primary key(kuenstlername,cdtitel)) type=innodb;");
// KUENSTLER ERZEUGEN UND FUELLEN
try {
s.executeUpdate("drop table kuenstler;");
}
catch (Exception e) {
out.println("Tabelle 'kuenstler' nicht da: kein DROP");
}
s.executeUpdate("create table kuenstler(kuenstlername char(11), personenanzahl int(3), gruendungsjahr int(4), cdanzahl int (4), primary key(kuenstlername), constraint foreign key(kuenstlername) references cd(kuenstlername) on update restrict on delete cascade) type=innodb;");
// SONGS ERZEUGEN UND FUELLEN
try {
s.executeUpdate("drop table songs;");
}
catch (Exception e) {
out.println("Tabelle 'songs' nicht da: kein DROP");
}
s.executeUpdate("create table songs(cdtitel char(11), songname char(11), songlaenge decimal(3,2), primary key(cdtitel,songname), constraint foreign key(cdtitel) references cd(cdtitel) on update restrict on delete cascade) type=innodb;");
vielen dank!
Zuletzt bearbeitet: