Folgendes Problem habe ich im Datenmodellierung-Thread schon gepostet, aber da konnte mir niemand helfen:
Ich verwende WindowsXP, mySQL 4.018 und der Dienst mysqld-nt.exe läuft.
Ich rufe nun im Ordner ...mysql\bin\mysql.exe auf, lege eine neue Database mit dem Befehl create database dmabgabe2 an, sage use dmabgabe2 und füge nur mal den Code zur Erstellung der Tables von der Datenmodellierung-Homepage ein.
Ich bekomme dadurch folgende Fehlermeldungen:
Zitat von mySQL-ConsoleAlles anzeigen
...
mysql> use dmabgabe2
Database changed
mysql> CREATE TABLE buch (
-> nr INTEGER PRIMARY KEY,
-> titel VARCHAR(256),
-> seiten INTEGER);
ERROR 1074: Too big column length for column 'titel' (max = 255). Use BLOB inste
ad
mysql>
mysql> CREATE TABLE person (
-> persnr INTEGER PRIMARY KEY,
-> vorname VARCHAR(256),
-> nachname VARCHAR(256),
-> gebdat DATE);
ERROR 1074: Too big column length for column 'vorname' (max = 255). Use BLOB ins
tead
mysql>
mysql> CREATE TABLE kunde (
-> persnr INTEGER REFERENCES person PRIMARY KEY,
-> einschreibung DATE,
-> treuepunkte INTEGER);
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresp
onds to your MySQL server version for the right syntax to use near 'PRIMARY KEY,einschreibung DATE,
treuepunkte INTEGER)' at lin
mysql>
mysql> CREATE TABLE angestellter (
-> persnr INTEGER REFERENCES person PRIMARY KEY,
-> eingestellt DATE,
-> gehalt INTEGER);
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresp
onds to your MySQL server version for the right syntax to use near 'PRIMARY KEY,eingestellt DATE,
gehalt INTEGER)' at line 2
mysql>
mysql> CREATE TABLE ausgeborgt (
-> kpersnr INTEGER,
-> nr INTEGER,
-> apersnr INTEGER,
-> datum DATE,
-> FOREIGN KEY (nr) REFERENCES buch(nr),
-> FOREIGN KEY (kpersnr) REFERENCES kunde (persnr),
-> FOREIGN KEY (apersnr) REFERENCES angestellter (persnr),
-> PRIMARY KEY (nr,datum));
Query OK, 0 rows affected (0.07 sec)mysql>
mysql> CREATE TABLE retour (
-> nr INTEGER,
-> apersnr INTEGER REFERENCES angestellter(persnr),
-> datum DATE,
-> ret DATE,
-> FOREIGN KEY (nr,datum) REFERENCES ausgeborgt(nr,datum),
-> PRIMARY KEY (nr,datum));
Query OK, 0 rows affected (0.04 sec)mysql>
mysql>
mysql> CREATE TABLE autor (
-> persnr INTEGER REFERENCES person PRIMARY KEY,
-> nation VARCHAR(256));
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresp
onds to your MySQL server version for the right syntax to use near 'PRIMARY KEY,nation VARCHAR(256))' at line 2
mysql>
mysql> CREATE TABLE schreibt (
-> autor INTEGER REFERENCES autor(persnr),
-> buch INTEGER REFERENCES buch(nr),
-> PRIMARY KEY(autor,buch));
Query OK, 0 rows affected (0.03 sec)mysql>
mysql> CREATE TABLE verstorben (
-> nr INTEGER REFERENCES autor(persnr) PRIMARY KEY,
-> datum DATE);
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresp
onds to your MySQL server version for the right syntax to use near 'PRIMARY KEY,datum DATE)' at line 2
mysql>
Den column-error könnte ich durch Reduzierung des Wertes von 256 auf 255 umgehen (was aber nur eine Notlösung wäre).
Der Syntax an sich funktioniert bei anderen Leute ja, doch was ist bei mir falsch?