SQL 创建 table 时查询语法错误

SQL query syntax error while creating a table

我在创建 table 时收到 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 )
);

这是错误:

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 'NUMBER(5) NOT NULL.

我的语法有什么问题?

NUMBER 不是 MySQL 中的有效数据类型,您应该从 list 中选择一个(也许您的意思是 NUMERIC ).

您还应该用反引号转义一些标识符(在您的例子中,列名 BA L,其中包含一个 space,以及 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

使用 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 )
);