Seite 1 von 1

MySQL Error

Verfasst: Freitag 14. Juni 2019, 23:53
von mjleonir
Hallo,
Ich bekomme bei mehreren "CREATE TABLE" Aktionen den Errorcode 1064 (42000).
Ein Beispiel wäre:

Code: Alles auswählen

mycursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), gender VARCHAR(255), password VARCHAR(255), mail VARCHAR(255), rank INT, created_at VARCHAR(255), verified INT, image VARCHAR(255))")
Ich führe mehrere verschiedene solcher Aktionen aus (CREATE TABLE), bei manchen klappt es, bei manchen kommt eben diese Fehlermeldung, wie beispielsweise bei der obengenannten Zeile.
Wo liegt mein Fehler?

MfG

Re: MySQL Error

Verfasst: Samstag 15. Juni 2019, 01:19
von mjleonir
Zusatz:
Ich habe gerade in phpmyadmin über XXAMP versucht alles zu erstellen, was ohne Probleme geklappt hat.

Re: MySQL Error

Verfasst: Samstag 15. Juni 2019, 01:38
von sparrow
Die gesamte Fehlermeldung wäre hilfreich.

Re: MySQL Error

Verfasst: Samstag 15. Juni 2019, 09:54
von __blackjack__
@mjleonir: Die Spalte `created_at` hat den Typ VARCHAR und nicht DATETIME oder TIMESTAMP? Und wahrscheinlich fehlt noch das ein oder andere NOT NULL.

Re: MySQL Error

Verfasst: Samstag 15. Juni 2019, 19:33
von mjleonir
__blackjack__ hat geschrieben: Samstag 15. Juni 2019, 09:54 @mjleonir: Die Spalte `created_at` hat den Typ VARCHAR und nicht DATETIME oder TIMESTAMP? Und wahrscheinlich fehlt noch das ein oder andere NOT NULL.
Das habe ich bereits probiert, hat aber mein Problem nicht gelöst. Natürlich wäre es so oder so schöner und besser das so zu machen, mein Problem löst es, aber wie gesagt nicht, was erst einmal im Vordergrund steht.
Außerdem habe ich, wie bereits gesagt, auch andere Tabellen erfolgreich erstellen können, wo nichts anders ist außer die Benennungen.

MfG

Die Errormessage lautet wie folgt:
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 'rank INT, created_at VARCHAR(255), verified INT, image VARCHAR(255))' at line 1

Re: MySQL Error

Verfasst: Samstag 15. Juni 2019, 19:48
von Sirius3
Ein Tabelle zu erzeugen, sollte etwas bewußtes sein, ein "IF NOT EXISTS" läßt vermuten, dass Du einfach so auf Verdacht immer wieder solche Tabellen erzeugst. Da aber niemand sagen kann, dass die bereits existierende Tabelle dem Schema entspricht, das Du möchtest, ist dieses Vorgehen Quatsch.

Soll verified wirklich ein INT sein?

`rank` ist der Name einer Funktion.