Mysql 1064-靠近'的语法错误;数字不为空默认值';0.0';,
我无法使用下面的SQL指令创建表 我试图修改一些de fault值,但我有相同的错误Mysql 1064-靠近'的语法错误;数字不为空默认值';0.0';,,mysql,sql,Mysql,Sql,我无法使用下面的SQL指令创建表 我试图修改一些de fault值,但我有相同的错误 DROP TABLE IF EXISTS CountryLanguage; CREATE TABLE CountryLanguage ( CountryCode TEXT NOT NULL DEFAULT '', Lang TEXT NOT NULL DEFAULT '', IsOfficial INTEGER NOT NULL DEFAULT '0', Percentage NUMBER NO
DROP TABLE IF EXISTS CountryLanguage;
CREATE TABLE CountryLanguage (
CountryCode TEXT NOT NULL DEFAULT '',
Lang TEXT NOT NULL DEFAULT '',
IsOfficial INTEGER NOT NULL DEFAULT '0',
Percentage NUMBER NOT NULL default '0.0',
PRIMARY KEY (CountryCode,Lang)
);
表未创建,我收到以下消息:
Static analysis:
1 errors found during the scan.
Data type not recognized. (near "NUMBER" in position 164)
SQL request: CREATE TABLE CountryLanguage ( CountryCode TEXT NOT NULL DEFAULT '', Lang TEXT NOT NULL DEFAULT '', IsOfficial INTEGER NOT NULL DEFAULT '0', Percentage NUMBER NOT NULL default '0.0', PRIMARY KEY (CountryCode,Lang) )
MySQL replied: Documentation
# 1064 - Syntax error near 'NUMBER NOT NULL default' 0.0 ',
PRIMARY KEY (CountryCode, Lang)
) 'at line 5
试试这个:
DROP TABLE IF EXISTS CountryLanguage;
CREATE TABLE CountryLanguage (
CountryCode TEXT NOT NULL DEFAULT '',
Lang TEXT NOT NULL DEFAULT '',
IsOfficial INTEGER NOT NULL DEFAULT 0,
Percentage FLOAT NOT NULL default 0.0,
PRIMARY KEY (CountryCode,Lang)
);
另外,注意常量数据-数字周围没有撇号(用于字符串)您的问题已经包含了您要寻找的答案:数据类型无法识别。(在164位的“NUMBER”附近),数据类型“NUMBER”不存在:MySQL中没有NUMBER数据类型这段代码只是一厢情愿。请咨询以解开任何谜团。我用你的代码试过了,没问题。但我现在有以下错误:#1170-索引定义中使用的BLOB类型“CountryCode”列没有索引长度您真的需要65 KB来存储CountryCode(像..
.de
?.fr
)和Lang(像en-US
,de
?)。将文本
替换为VARCHAR(xx)
,其中xx
是一个适当的最小大小的数字,用于存储数据(如en-US
的VARCHAR(5)或de
的VARCHAR(2),fr
),这样就可以了。我为CountryCode做了VARCHAR(3),但Idefine怎么也能做好lang列呢?**1170-在索引定义中使用的BLOB类型“Lang”列没有索引长度**Er。。就像你做countrycode一样Lang TEXT NOT NULL DEFAULT',
->Lang VARCHAR(5)NOT NULL DEFAULT',
几乎总是比FLOAT
更可取。