我在创建表时遇到SQL查询语法错误。这是SQL查询:
CREATE TABLE ACCOUNT (
ACCNO NUMBER(5) NOT NULL,
NAME VARCHAR(20) NOT NULL,
BA L NUMBER(8,2) NOT NULL,
CREATION-DT DATE NOT NULL,
PRIMARY KEY ( ACCNO )
);
这是错误:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 接近' NUMBER(5)NOT NULL。
我的语法有什么问题?
答案 0 :(得分:0)
NUMBER
在MySQL中不是有效的数据类型,您应该从list中选择一个(也许你的意思是NUMERIC
)。
你还应该转义一些标识符(在你的情况下,列名BA L
,其中包含一个空格)和CREATION-DT
,其中包括一个破折号),在MySQL中带有反引号`
:
CREATE TABLE `ACCOUNT` (
`ACCNO` NUMERIC(5) NOT NULL,
`NAME` VARCHAR(20) NOT NULL,
`BA L` NUMERIC(8,2) NOT NULL,
`CREATION-DT` DATE NOT NULL,
PRIMARY KEY ( `ACCNO` )
);
答案 1 :(得分:0)
使用SQLfiddle,您可以看到这是无效的。
您的语法有多个问题; invalid data types,invalid column names等。您可以将无效名称封装在反引号中,但是您必须记住以后封装它们。
而不是Number
你可能意味着numeric
,但我建议改为Integer
。
或者试试这个:
CREATE TABLE ACCOUNT (
ACCNO INTEGER(5) NOT NULL,
NAME VARCHAR(20) NOT NULL,
BAL INTEGER(8) NOT NULL,
CREATIONDT DATE NOT NULL,
PRIMARY KEY ( ACCNO )
);