【问题标题】:How to use special characters in MySQL column names?如何在 MySQL 列名中使用特殊字符?
【发布时间】:2013-07-30 20:17:06
【问题描述】:

这是我失败的 MySQL 代码:

CREATE TABLE product (
            id int NOT NULL AUTO_INCREMENT,
            'item-name' VARCHAR(255) NOT NULL,
            'item-description' TEXT,
            'listing-id' VARCHAR(50),
            PRIMARY KEY (id)
        )

错误是:

创建表时出错:您的 SQL 语法有误;检查手册 对应于您的 MySQL 服务器版本,以便在附近使用正确的语法
'item-name' VARCHAR(255) NOT NULL, 'item-description' TEXT, 'listing-id'' 在第 3 行

文档说要使用引号...有什么问题?

【问题讨论】:

  • 我建议只使用下划线。这是更常见的做法。所以使用item_nameitem_descriptionlisting_id。不过,要回答您的问题,您需要反引号而不是引号。

标签: mysql create-table


【解决方案1】:

使用` 代替'

CREATE TABLE product (
        id int NOT NULL AUTO_INCREMENT,
        `item-name` VARCHAR(255) NOT NULL,
        `item-description` TEXT,
        `listing-id` VARCHAR(50),
        PRIMARY KEY (id)
    )

【讨论】:

  • 我必须在 mac 上按哪些按钮才能执行此符号?
  • @MatthewBazanet 哦,不确定 - 它不是在键盘的左上角吗?不确定,因为我只使用过个人电脑。如果一切都失败了,你总是可以从这里复制和粘贴。但我想这不是一个好的长期解决方案。其他替代方法(正如其他人所建议的那样)是在列名中使用下划线而不是连字符 - 这样您就不需要反引号了。
  • 我已经替换并且代码有效,我发现我的意大利语 mac book pro 中的反引号符号在哪里:alt+左上按钮
  • 无论如何我可以在列名中添加反引号(`)作为特殊字符吗?
  • @Echo 是的 - 为此,请在列名中使用双反引号 (``) 而不是单个反引号 (`) 来转义它。
【解决方案2】:

为什么要使用引号?你应该使用反引号。试试这个:

CREATE TABLE product (
    id int NOT NULL AUTO_INCREMENT,
    `item-name` VARCHAR(255) NOT NULL,
    `item-description` TEXT,
    `listing-id` VARCHAR(50),
    PRIMARY KEY (id)
)

【讨论】:

    【解决方案3】:

    您应该使用反引号 (`) 来引用列名,而不是单引号 (')。查看波形键 (~) 上方。

    CREATE TABLE product (
        id INT NOT NULL AUTO_INCREMENT,
        `item-name` VARCHAR(255) NOT NULL,
        `item-description` TEXT,
        `listing-id` VARCHAR(50),
        PRIMARY KEY (id)
    )
    

    【讨论】:

      【解决方案4】:

      请在表格定义中使用普通字符。您可以使用下划线“_”代替“-”。

      当您查询您的数据库时,您必须始终使用引号。对我来说不可能! :)

      如果你想走这条路,请使用报价

      CREATE TABLE product (
          id INT NOT NULL AUTO_INCREMENT,
          `item-name` VARCHAR(255) NOT NULL,
          `item-description` TEXT,
          `listing-id` VARCHAR(50),
          PRIMARY KEY (id)
      )
      

      【讨论】:

        猜你喜欢
        • 2019-06-04
        • 1970-01-01
        • 1970-01-01
        • 2020-08-10
        • 1970-01-01
        • 2010-10-27
        • 1970-01-01
        相关资源
        最近更新 更多