如何在列名中使用特殊字符

时间:2013-07-30 15:27:02

标签: mysql create-table

这是我失败的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行

文档说使用引号......出了什么问题?

4 个答案:

答案 0 :(得分:6)

需要使用`代替'

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)
    )

答案 1 :(得分: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)
)

答案 2 :(得分: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)
)

答案 3 :(得分:0)

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

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

如果您想要遵循这条道路,请使用引用

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)
)