Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

MySQL Datenbank-Frage: Syntax error

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Skaterboy, 15 Oktober 2012.

  1. Skaterboy

    Skaterboy Neuer Benutzer

    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)
    );
     
  2. ukulele

    ukulele Datenbank-Guru

    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)
     
    Tommi gefällt das.
  3. Skaterboy

    Skaterboy Neuer Benutzer

    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
     
  4. ukulele

    ukulele Datenbank-Guru

    Nach jedem Constraint musst du ein Komma setzen, bevor der nächste Constraint anfängt. Es fehlt also an zwei Stellen ein Komma.
     
    Skaterboy gefällt das.
  5. Skaterboy

    Skaterboy Neuer Benutzer

    Dankeschön, jetzt läuft alles einwandfrei :D
     
  6. akretschmer

    akretschmer Datenbank-Guru


    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden