Reputation: 609
I'm trying to create an sql table called 'cartable'. I'm currently using phpmyadmin via MAMP(Mac Version of WAMP).
When I click on the save button this error appears:
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
It seems to be a problem with the double data type as when I change it to varchar the table is created. Is there any other way around it? Thanks in advance, any help is much appreciated.
Upvotes: 0
Views: 6388
Reputation: 881513
Your problem lies here:
`STATUS` ENUM( 1 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
An enum
type is supposed to be a string object, not a numeric one.
From the MySQL doco,
An ENUM is a string object with a value chosen from a list of permitted values that are enumerated explicitly in the column specification at table creation time.
An enumeration value must be a quoted string literal; it may not be an expression, even one that evaluates to a string value.
Upvotes: 3
Reputation:
you have error in enum line, you need to predefine the enum values as below:
STATUS
ENUM('ravi', 'kotwani') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
Full 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('ravi', 'kotwani') 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;
Upvotes: 2