Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
#1064 mysql错误-双精度非空_Mysql_Sql_Database_Double - Fatal编程技术网

#1064 mysql错误-双精度非空

#1064 mysql错误-双精度非空,mysql,sql,database,double,Mysql,Sql,Database,Double,我正在尝试创建一个名为“cartable”的sql表。我目前正在通过MAMP(WAMP的Mac版本)使用phpmyadmin 单击“保存”按钮时,出现以下错误: SQL query: CREATE TABLE `cardatabase`.`CARTABLE` ( `ID` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `SLOTNUMBER` VARCHAR( 10 ) CHARACTER SET

我正在尝试创建一个名为“cartable”的sql表。我目前正在通过MAMP(WAMP的Mac版本)使用phpmyadmin

单击“保存”按钮时,出现以下错误:

    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 

这似乎是双重数据类型的问题,因为当我将其更改为varchar时,表被创建。还有别的办法吗?提前感谢,非常感谢您的帮助。

您的问题在于:

`STATUS` ENUM( 1 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
enum
类型应该是字符串对象,而不是数字对象

枚举是一个字符串对象,其值从表创建时列规范中显式枚举的允许值列表中选择

枚举值必须是带引号的字符串文字;它可能不是表达式,甚至不是计算为字符串值的表达式


你的问题在于:

`STATUS` ENUM( 1 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
enum
类型应该是字符串对象,而不是数字对象

枚举是一个字符串对象,其值从表创建时列规范中显式枚举的允许值列表中选择

枚举值必须是带引号的字符串文字;它可能不是表达式,甚至不是计算为字符串值的表达式


枚举行中有错误,需要按如下方式预定义枚举值:

STATUS
ENUM('ravi','kotwani')字符集utf8 COLLATE utf8\u general\u ci不为空

完整查询:

创建表
cardabase
CARTABLE
(
ID
VARCHAR(10)字符集utf8 COLLATE utf8\u general\u ci不为空,
SLOTNUMBER
VARCHAR(10)字符集utf8 COLLATE utf8\u general\u ci不为空,
STATUS
ENUM('ravi','kotwani')字符集utf8 COLLATE utf8\u general\u ci不为空,
纬度
十进制(20)不为空,
经度
十进制(20)不为空,
LOCATION
VARCHAR(40)字符集utf8 COLLATE utf8\u general\u ci不为空,
DEVICEID
VARCHAR(20)字符集utf8比较utf8\u常规\u ci不为空
)ENGINE=InnoDB字符集utf8对照utf8\u常规\u ci

如果枚举行中有错误,需要按如下方式预定义枚举值:

STATUS
ENUM('ravi','kotwani')字符集utf8 COLLATE utf8\u general\u ci不为空

完整查询:

创建表
cardabase
CARTABLE
(
ID
VARCHAR(10)字符集utf8 COLLATE utf8\u general\u ci不为空,
SLOTNUMBER
VARCHAR(10)字符集utf8 COLLATE utf8\u general\u ci不为空,
STATUS
ENUM('ravi','kotwani')字符集utf8 COLLATE utf8\u general\u ci不为空,
纬度
十进制(20)不为空,
经度
十进制(20)不为空,
LOCATION
VARCHAR(40)字符集utf8 COLLATE utf8\u general\u ci不为空,
DEVICEID
VARCHAR(20)字符集utf8比较utf8\u常规\u ci不为空
)ENGINE=InnoDB字符集utf8对照utf8\u常规\u ci

double数据类型在哪里?我想说decimal对不起,但是问题出在enum上,我没有指定选项。现在就解决了:)谢谢!double数据类型在哪里?我想说decimal对不起,但是问题出在enum上,我没有指定选项。现在就解决了:)谢谢!