创建表时SQL查询语法错误

时间:2016-03-15 23:15:27

标签: mysql sql syntax-error

我在创建表时遇到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。

我的语法有什么问题?

2 个答案:

答案 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` )
);

SQLFiddle

答案 1 :(得分:0)

使用SQLfiddle,您可以看到这是无效的。

您的语法有多个问题; invalid data typesinvalid 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 )
);