mysql -> dbDesigner4, SQL funktioniert nicht

Kipperlenny

Erfahrenes Mitglied
Moin Moin

Ich nutzte gestern den dbDesigner4 - als ich schon recht weit war mit meinem ersten Modell (bisher immer alles per Hand über phpmyadmin gemacht) wurde das Ding immer langsamer. dbDesigner unterstützt anscheinend kein Dual Core - und ist somit nicht benutzbar an meinem Rechner.

Habe dann die MySql Workbench ausprobiert, auch noch nicht so toll von der perfomance - aber jetzt habe ich ein ganz anderes Problem.

Das Modell ist recht weit fertig, dann habe ich exportiert und wollte in meine datenbank importieren, bei folgendem:

Code:
CREATE TABLE IF NOT EXISTS `heerschaftV4`.`markt` (
`markt_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`menge` INT NOT NULL ,
`preis` INT UNSIGNED NULL DEFAULT NULL ,
`land_has_rohstoffe_land_id` INT UNSIGNED NOT NULL ,
`land_has_rohstoffe_rohstoffe_id` INT UNSIGNED NOT NULL ,
PRIMARY KEY ( `markt_id` , `land_has_rohstoffe_land_id` , `land_has_rohstoffe_rohstoffe_id` ) ,
INDEX `fk_markt_land_has_rohstoffe1` ( `land_has_rohstoffe_land_id` ASC , `land_has_rohstoffe_rohstoffe_id` ASC ) ,
CONSTRAINT `fk_markt_land_has_rohstoffe` FOREIGN KEY ( ) REFERENCES `heerschaftV4`.`land_has_rohstoffe` (
) ON DELETE NO ACTION ON UPDATE NO ACTION ,
CONSTRAINT `fk_markt_land_has_rohstoffe1` FOREIGN KEY ( `land_has_rohstoffe_land_id` , `land_has_rohstoffe_rohstoffe_id` ) REFERENCES `heerschaftV4`.`land_has_rohstoffe` (
`land_id` ,
`rohstoffe_id`
) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE = MYISAM ;

kommt folgender Fehler:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') REFERENCES `heerschaftV4`.`land_has_rohstoffe` (
) ON DELETE NO ACTION ON UPD' at line 9

Keine Ahnung wo ich anfangen soll den Fehler zu suchen - habt ihr da nen Tipp.

Und was gibt es noch für Programme (mit Dual Core und vielleicht sogar 64bit unterstützung) um solche Modelle zu entwerfen?

lenny
 
Soweit ich weiß kannst du eine Referenzielle integriert nur bei einer innodb Tabelle erstellen.
Du versucht aber das bei einer MYISAM Tabelle die aber das nicht unterstützt daher die Fehlermeldung.

Lass die Referenzielle integriert weg dann sollte es funktionieren oder verwende innodb Tabellen.

Mfg Splasch
 
Vielen Danke schon mal für deine Antwort - werde ich gleich mal testen.

Allerdings wüsste ich jetzt noch ganz gerne, wie ich beim MySQL Workbench das ausstelle, damit ich das nicht von Hand aus dem exportierten SQL rausnehmen muss.

Und gibts alternativen?
 
Allerdings wüsste ich jetzt noch ganz gerne, wie ich beim MySQL Workbench das ausstelle, damit ich das nicht von Hand aus dem exportierten SQL rausnehmen muss.

Was meinst du mit ausschalten das gibst du doch selber bei der Erstellung des Diagram an welche beziehung du haben möchtest?

Das ist so wie wenn du einen Teil grün lackieren würdest und einen anderen rot und mich dann fragst wie kann ich die Farbe beim Lackieren ausschalten.

Du wirst schon bei jeder Beziehung angeben müssen das du keine Referenzielle integriert haben möchtest.Oder eben die Tabellen auf innodb umstellen.

Auf Englisch heißte das übrings (indentifying Relationship oder Non - indentifying Relationship)

Mfg Splasch
 
Nennt mir eins welches gut ist - darf auch was kosten ;)

Übrigens - der Fehler war nicht MyIsam sondern ein leerer Foreign Key - auch oben im Quelltext:

Code:
CONSTRAINT `fk_markt_land_has_rohstoffe` FOREIGN KEY ( )
 
Zurück