【问题标题】:error in SQL syntax creating a database table创建数据库表的 SQL 语法错误
【发布时间】:2015-07-02 18:43:46
【问题描述】:

我正在尝试在 mysql 14.14 Distrib 5.6.24 的数据库中创建一个表,

我想要一个有两列的表格:

  • 一个存储文本
  • 一个存储长整数以索引文本字段,

SQL:

CREATE TABLE mytable(
    tag MEDIUMTEXT,
    index BIGINT(20)
) 
ENGINE MyISAM;

但我得到了错误

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'BIGINT(20) 附近使用的正确语法

【问题讨论】:

标签: mysql sql ddl create-table


【解决方案1】:

index 是 MySQL(以及我能想到的任何其他关系数据库)中的 reserved word。它用于创建,嗯,indexes

在 MySQL 中,您可以通过使用 ` 字符来转义对象名称:

CREATE TABLE mytable (
    tag MEDIUMTEXT, 
    `index` BIGINT(20) 
) ENGINE MyISAM;

但通常认为更好的做法是完全避免此类情况。例如,您可以调用数字列tag_index

CREATE TABLE mytable (
    tag MEDIUMTEXT, 
    tag_index BIGINT(20) 
) ENGINE MyISAM;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    相关资源
    最近更新 更多