Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fehler bei SQL-Datenbankgenerierung

Empfohlene Antworten

Einen wunderschönen guten Abend,

ich habe heute den gesamten Tag ein Datenbank-Modell entworfen und wollte es grade auf meinen MySQL-Server aufspielen mittels eines SQL-Skripts.

Es ist natürlich jetzt schwierig aufgrund des mittelgroßen Codes den Fehler zu beschreiben.

Die Fehlermeldung ist folgende:


#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 'Position(ID)

      ON DELETE CASCADE

      ON UPDATE CASCADE

)' at line 35 

Der Code der gesamten Datenbank befindet sich hier (MySQL Version 5.0.27):

MySQL Code der Datenbank

Ein Bild meines Datenbank-Modells:

modell.jpg

Ich nehme an es liegt an den Fremdschlüsseln aber ich habe ehrlich gesagt keine Idee mehr was ich falsch mache. Würde mich wirklich sehr über eure Hilfe freun ! Ich hoffe an brauchbaren und nötigen Informationen nichts vergessen.

Danke und noch einen schönen Abend,

MCT

verwendest du innodb- oder myisam-tabellen? letztere unterstützen AFAIR keine fremdschlüssel, zumindest aber keine kaskadierenden updates und löschoperationen.

s'Amstel

Hi,

ich benutze MyISAM. Sollte ich auf innoDB umstellen? Kann mir eventuell jemand den Unterschied erklären?

Danke,

MCT

Hi,

Myisam bietet nur einfache Tabellenverwaltung.

Erst der Tabellentyp InnoDB bietet Fremdschlüssel und Transaktion und ...

Bei Myisam werden die nicht unterstützten Features einfach ignoriert.

Hat aber alles nix mit der Fehlermeldung zu tun.

Position ist ein Schlüsselwort, du musst das umbenennen oder in Backticks setzen `Position`.

Gruß Jaraz

Danke, jetzt nimmt die Datenbank auch den Code endlich an. Es lag wirklich am Namen "Position".

Jetzt hätte ich aber noch eine kleine Frage. Um die Beziehungen auch wirklich nutzen zu können brauche ich also innoDB und nicht MyISAM, also um die unten aufgezählten Befehle nutzen zu können ?

Wo genau liegt denn der Unterschied zwischen den Referenz-Definitionen, die bei "On Delete" und "On Update" angegeben werden können:

  • RESTRICT
  • CASCADE
  • SET NULL
  • SET DEFAULT

Nochmals vielen vielen Dank für eure Hilfe, endlich gehts mal wieder voran ;-)

Gruß,

MCT

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.