为什么此脚本失败,因为它不喜欢列名?

时间:2018-01-12 23:20:34

标签: mysql mysql-workbench

它不喜欢 release 这个词作为列名。

 CREATE TABLE external_db (

      external_db_id          INT not null,
      db_name                     VARCHAR(100) NOT NULL,
      release                    VARCHAR(40)  NOT NULL,
      status                      ENUM ('KNOWNXREF','KNOWN','XREF','PRED','ORTH', 'PSEUDO') not null,

      PRIMARY KEY( external_db_id ) 

    );

Error in MySQLWorkbench

我将字段名称更改为releaseX,错误消失了。

这个脚本来自https://github.com/Ensembl/ensembl/blob/release/91/sql/table.sql,它应该是mySQL。这是MySQL中的版本问题还是我可以在脚本中修饰 release 这个词,以便它可以用作列名?

我正在使用MySQL 5.7和MySQLWorkbench 6.3。

我知道 release 是一个错误的列名,但我没有编写脚本。

1 个答案:

答案 0 :(得分:1)

发布是reserved keyword

要将它用作列名,可以使用这样的反引号来转义它:

from collections import defaultdict

original = {1: 'a', 2: 'b', 3: 'a'}

flipped = defaultdict(list)

for key, value in original:
    flipped[value].append(key)