PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was ist bei meiner CREATE Table falsch?



Cimme
02-01-2005, 17:33
Hallo miteinander,
ich habe gerade meine Tabellen für mein php-Script anlegen wollen.

was ist an diesem Syntax falsch? (lt. MyAdmin in den ersten Zeilen)


CREATE TABLE 'miet' (
'idmiet' INT UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
'objectid' INT NOT NULL UNSIGNED,
'adresse' TEXT INT NOT NULL UNSIGNED,
'plz' TINYINT NOT NULL UNSIGNED,
'ort' TEXT NOT NULL,
'kaltmiete' TINYINT NOT NULL,
'warmmiete' TINYINT NOT NULL,
'aussicht' SMALLINT NOT NULL,
'kabel' SMALLINT NOT NULL,
'internet' SMALLINT NOT NULL,
'lift' SMALLINT NOT NULL,
'parkplatz' SMALLINT NOT NULL,
'garage' SMALLINT NOT NULL,
'haustiere' SMALLINT NOT NULL,
'balkon' SMALLINT NOT NULL,
'beschreibung' TEXT NOT NULL,
'titel' TINYTEXT NOT NULL,
'bild' SMALLINT NULL,
'zimmer' INT NOT NULL UNSIGNED,
'qm' SMALLINT NOT NULL UNSIGNED,
'baujahr' SMALLINT NOT NULL UNSIGNED,
'verfuegbar' TEXT NOT NULL UNSIGNED,
);

Pingu
02-01-2005, 18:17
'idmiet' INT UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,

Auch mal mit dem Manual verglichen?

spalten_name typ [NOT NULL | NULL] [DEFAULT vorgabe_wert] [AUTO_INCREMENT]
[PRIMARY KEY] [referenz_definition]

Kurz gesagt: Du hast die falsche Reihenfolge. Die richtige Reihenfolge ist:
'idmiet' INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,


Pingu

Christoph
02-01-2005, 18:56
Die single Quotes sind falsch. Quoted identifier werden mit doppelten Anführungszeichen notiert, aber das ist eine ganz schlechte Idee, denn dann werden alle Bezeichne Casesensitiv und alle späteren SQL-Befehle werden mit Wahrscheinlichkeit Eins auf die Nase fallen.

Also: Quotes ganz weglassen.

PS: was soll denn "unsigned text" für ein Datentyp sein und was sind TINYTEXT und TINYINT?

Pingu
02-01-2005, 19:07
zustimm: Das sind ja noch viel mehr Fehler. Lese doch ersteinmal die Doku.

Pingu

Hans-Georg Normann
02-01-2005, 19:54
Auch etwas unüblich, alles Pflichtfelder. Mag ja für dieses Beispiel zutreffend sein, aber geht das beim Insert von vielen Datensätzen nicht reichlich auf die Performance?

Hans

Cimme
02-01-2005, 22:05
Die single Quotes sind falsch. Quoted identifier werden mit doppelten Anführungszeichen notiert, aber das ist eine ganz schlechte Idee, denn dann werden alle Bezeichne Casesensitiv und alle späteren SQL-Befehle werden mit Wahrscheinlichkeit Eins auf die Nase fallen.

Also: Quotes ganz weglassen.

PS: was soll denn "unsigned text" für ein Datentyp sein und was sind TINYTEXT und TINYINT?
unsigned soll heißen: keine Negativen Werte zugelassen. Is aber denk ich überflüssig, wenn ich eure Reaktion anschau! :D

Ich habe mir mit den Inserts an 'MySQL mit PHP' von Gregor Kuhlmann und Friedrich Müllmerstadt vom RORORO-Verlag orientiert! :(
Die hauseigene Doku von MySQL habe ich leider noch kein einziges mal studiert, werde mir diese aber nun zur Brust nehmen!

Vielen Dank für eure Hilfe! :D

Cimme
02-01-2005, 22:21
habe nun den DBDesigner gefunden!

Jetzt werden mir einige Fehler klar! :D