MySQL Error

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
mjleonir
User
Beiträge: 12
Registriert: Donnerstag 18. April 2019, 14:49

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
mjleonir
User
Beiträge: 12
Registriert: Donnerstag 18. April 2019, 14:49

Zusatz:
Ich habe gerade in phpmyadmin über XXAMP versucht alles zu erstellen, was ohne Probleme geklappt hat.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Die gesamte Fehlermeldung wäre hilfreich.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mjleonir: Die Spalte `created_at` hat den Typ VARCHAR und nicht DATETIME oder TIMESTAMP? Und wahrscheinlich fehlt noch das ein oder andere NOT NULL.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
mjleonir
User
Beiträge: 12
Registriert: Donnerstag 18. April 2019, 14:49

__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
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Antworten