2

当我尝试运行此脚本时,如果我删除或更改名称,我会在“范围”处收到错误,我可以运行脚本,但是应用程序需要此列来存储数据。知道如何将其插入 MySQL 吗?

错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 22 行的 '"range" CHAR(5) NOT NULL, range_max_value NUMERIC(18,3)' 附近使用正确的语法

CREATE TABLE My_table (
  chart_id                INTEGER NOT NULL,
  u_range                 CHAR(5),
  l_range                 CHAR(5),
  "range"               CHAR(5) NOT NULL,
  range_max_val         NUMERIC(18,3),
  range_min_val         NUMERIC(18,3),
  PRIMARY KEY (chart_id)
);
4

3 回答 3

9

Range 是一个保留关键字,需要使用反引号进行转义。

CREATE TABLE My_table (
  chart_id                INTEGER NOT NULL,
  u_range                 CHAR(5),
  l_range                 CHAR(5),
  `range`               CHAR(5) NOT NULL,
  range_max_val         NUMERIC(18,3),
  range_min_val         NUMERIC(18,3),
  PRIMARY KEY (chart_id)
);
于 2012-10-04T20:35:47.187 回答
3

您应该查看保留字列表。范围就是其中之一。您需要使用刻度线对其进行转义:

CREATE TABLE My_table (
  chart_id                INTEGER NOT NULL,
  u_range                 CHAR(5),
  l_range                 CHAR(5),
  `range`               CHAR(5) NOT NULL,
  range_max_val         NUMERIC(18,3),
  range_min_val         NUMERIC(18,3),
  PRIMARY KEY (chart_id)
);
于 2012-10-04T20:36:30.993 回答
1

RANGE是保留字。 http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

于 2012-10-04T20:36:31.280 回答