2012-04-07 6 views
0

Ich versuche, eine SQL-Tabelle namens 'Cartable' zu erstellen. Ich verwende derzeit phpmyadmin über MAMP (Mac Version von WAMP).# 1064 mysql Fehler - DOUBLE NOT NULL

Wenn ich auf die Schaltfläche Speichern klicken dieser Fehler angezeigt:

SQL query: 

CREATE TABLE `cardatabase`.`CARTABLE` (
`ID` VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 
`SLOTNUMBER` VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 
`STATUS` ENUM(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 
`LATITUDE` DECIMAL(20) NOT NULL , 
`LONGITUDE` DECIMAL(20) NOT NULL , 
`LOCATION` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 
`DEVICEID` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL 
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; 

MySQL said: Documentation 
#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 '1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `LATITUDE` DECIMAL(20) N' at line 1 

Es scheint ein Problem mit der doppelten Datentyp zu sein, wie wenn ich es ändern die Tabelle in varchar erstellt. Gibt es einen anderen Weg? Vielen Dank im Voraus, jede Hilfe wird sehr geschätzt.

+0

Wo ist der doppelte Datentyp? – JJJ

+0

wollte sagen, dezimal sorry, aber das Problem war mit enum, ich habe die Optionen nicht angegeben. habe es jetzt aussortiert :) danke! – progdoc

Antwort

3

Ihr Problem liegt hier:

`STATUS` ENUM(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 

Ein enum Typ ein String Objekt sein soll, nicht ein numerisches ein.

Von the MySQL doco,

Ein ENUM ist ein String-Objekt mit einem Wert aus einer Liste zulässigen Werte ausgewählt, die explizit in der Spaltenspezifikation bei Tisch Erstellungszeit aufgezählt werden.

Ein Enumerationswert muss ein String-Literal in Anführungszeichen sein; Es darf kein Ausdruck sein, auch nicht ein Ausdruck, der einen String-Wert ergibt.

+0

danke das hat funktioniert :) – progdoc

2

Sie Fehler in Enum-Linie haben, müssen Sie, wie unten die ENUM-Werte vordefinieren:

STATUS ENUM ('Ravi', 'kotwani') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

Vollständige Abfrage:

Tabelle erstellen cardatabase. CARTABLE ( ID VARCHAR (10) Zeichensatz Utf8 COLLATE utf8_general_ci NOT NULL, SLOTNUMBER VARCHAR (10) Zeichensatz Utf8 COLLATE utf8_general_ci NOT NULL, STATUS ENUM ('Ravi', 'kotwani') Zeichensatz Utf8 COLLATE utf8_general_ci NOT NULL, LATITUDE DECIMAL (20) NOT NULL, LONGITUDE DECIMAL (20) NOT NULL, LOCATION VARCHAR (40) COLLATE SET utf8 CHARACTER utf8_general_ci NOT NULL, DEVICEID VARCHAR (20) COLLATE SET utf8 CHARACTER utf8_general_ci NOT NULL ) ENGINE = InnoDB CHARAKTERSET utf8 COLLATE utf8_general_ci;