MySQL Datenbank-Frage: Syntax error

Skaterboy

Neuer Benutzer
Beiträge
3
Habe ein Problem mit meiner Datenbank ich bekomme immer wieder eine Fehlermeldung, aber ich komm nicht dahinter :(
in meiner Tabelle Ausleihvorgaenge bekomme ich immer diese Fehlermeldung:
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 ausleihvorgaenge int not NULL, constraint ausleihvorgaenge_fk foreign key(ausleihvorgaenge) refere at line 16
Hier meine Datenbank, kann mir jemand vielleicht weiterhelfen? :)

Code:
create database Bibliothek;
use Bibliothek
 
create table Verlag(
Verlag_ID int not NULL auto_increment primary key,
 
Name varchar(20)
);
 
 
create table Buecher(
Buecher_ID int not NULL auto_increment primary key,
 
Titel varchar(20),
Kurzbeschreibung varchar(50),
ISBN varchar(20),
Aktueller_Preis int(15),
Verlag_ID int not NULL,
 
buecher int not NULL,
constraint buecher_fk
foreign key(buecher)
references Verlag(Verlag_ID)
 
);
 
 
create table Exemplare(
Exemplare_ID int not NULL auto_increment primary key,
 
Auflage varchar(20),
Buecher_ID int not NULL,
 
exemplare int not NULL,
constraint exemplare_fk
foreign key(exemplare)
references Buecher(Buecher_ID)
);
 
create table Personen(
Person_ID int not NULL auto_increment primary key,
 
Vorname varchar(15),
Nachname varchar(20),
Telefonnummer int(20),
E_Mail varchar(20),
Postleitzahl int(10),
Stadt varchar(20),
Strasse varchar(20)
);
 
create table Benutzer(
Benutzer_ID int not NULL auto_increment primary key,
 
PIN varchar(10),
Person_ID int not NULL,
 
benutzer int not NULL,
constraint benutzer_fk
foreign key(benutzer)
references Personen(Person_ID)
);
 
 
create table Ausleihvorgaenge(
Ausleihvorgaenge_ID int not NULL auto_increment primary key,
 
Rueckgabedatum varchar(20),
Rueckgabezustand varchar(20),
Ausleihzustand varchar(20),
Ausleihdatum varchar(20),
Exemplare_ID int not NULL,
Benutzer_ID int not NULL,
 
ausleihvorgaenge int not NULL,
constraint ausleihvorgaenge_fk
foreign key(ausleihvorgaenge)
references Exemplare(Exemplare_ID)
 
ausleihvorgaenge int not NULL,
constraint ausleihvorgaenge_fk
foreign key(ausleihvorgaenge)
references Benutzer(Benutzer_ID)
);
 
 
 
create table Autoren(
Autoren_ID int not NULL auto_increment primary key,
 
Lebenslauf varchar(100),
Person_ID int not NULL,
 
autoren int not NULL,
constraint autoren_fk
foreign key(autoren)
references Personen(Person_ID)
);
 
create table AutBuecher(
AutBuecher_ID int not NULL auto_increment primary key,
 
Buecher_ID int not NULL,
Autoren_ID int not NULL,
 
autbuecher int not NULL,
constraint autbuecher_fk
foreign key(autbuecher)
references Buecher(Buecher_ID)
 
autbuecher int not NULL,
constraint autbuecher_fk
foreign key(autbuecher)
references Autoren(Autoren_ID)
);
 
create table Genres(
Genres_ID int not NUll auto_increment primary key,
 
Abenteuerroman varchar(50),
Bildungsroman varchar(50),
Fantasyroman varchar(50),
Liebesroman varchar(50),
Heimatroman varchar(50),
);
 
create table GenBuecher(
GenBuecher_ID int not NULL auto_increment primary key,
 
Buecher_ID int not NULL,
Genres_ID int not NULL,
 
genbuecher int not NULL,
constraint genbuecher_fk
foreign key(genbuecher)
references Buecher(Buecher_ID)
 
genbuecher int not NULL,
constraint genbuecher_fk
foreign key(genbuecher)
references Genres(Genres_ID)
);
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.394
Du hast in der Tabelle Ausleihvorgaenge 2 gleichnamige Spalten ausleihvorgaenge und 2 gleichnamige Foreign Keys. Beides sollte zu Fehlern führen.
Code:
ausleihvorgaenge int not NULL,
constraint ausleihvorgaenge_fk
foreign key(ausleihvorgaenge)
references Exemplare(Exemplare_ID)
 
ausleihvorgaenge int not NULL,
constraint ausleihvorgaenge_fk
foreign key(ausleihvorgaenge)
references Benutzer(Benutzer_ID)
Probier mal:
Code:
ausleihvorgaenge int not NULL,
constraint ausleihvorgaenge_fk1
foreign key(ausleihvorgaenge)
references Exemplare(Exemplare_ID),
constraint ausleihvorgaenge_fk2
foreign key(ausleihvorgaenge)
references Benutzer(Benutzer_ID)
 

Skaterboy

Neuer Benutzer
Beiträge
3
Dankeschön, das Problem wäre behoben. Allerdings bekomme ich in diesen beiden Tabellen noch eine Fehlermeldung:

Code:
create table AutBuecher(
AutBuecher_ID int not NULL auto_increment primary key,
 
Buecher_ID int not NULL,
Autoren_ID int not NULL,
 
autbuecher int not NULL,
constraint autbuecher_fk1
foreign key(autbuecher)
references Buecher(Buecher_ID)
 
constraint autbuecher_fk2
foreign key(autbuecher)
references Autoren(Autoren_ID)
);
 
create table GenBuecher(
GenBuecher_ID int not NULL auto_increment primary key,
 
Buecher_ID int not NULL,
Genres_ID int not NULL,
 
genbuecher int not NULL,
constraint genbuecher_fk1
foreign key(genbuecher)
references Buecher(Buecher_ID)
 
constraint genbuecher_fk2
foreign key(genbuecher)
references Genres(Genres_ID)
);

Hier erhalte ich diese Fehlermeldung:

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 ´constraint autbuecher_fk2
foreign key(autbuecher)
references Autoren(Autoren_ID)´ at line 12
 

ukulele

Datenbank-Guru
Beiträge
4.394
Nach jedem Constraint musst du ein Komma setzen, bevor der nächste Constraint anfängt. Es fehlt also an zwei Stellen ein Komma.
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.028
Habe ein Problem mit meiner Datenbank ich bekomme immer wieder eine Fehlermeldung, aber ich komm nicht dahinter :(


Dein initiales Problem ist ja gelöst, aber Du hast weitere:

  • Längenbegrenzungen, die z.T. IMHO zu kurz sind
  • Preis als INT
  • Telefonnummer als int
  • Datum als varchar
  • Deine Genres-Table ist völlig Gaga

is mir nur grad soeben aufgefallen...

Außerdem: MySQL und keine Angabe der Engine, in vielen Umgebungen hast Du Default=MyISAM. Deine Foreign-Key-Constraints gehen komplett den Bach runter.
 
Oben