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

问题描述 投票:3回答:4

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

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

mysql create-table
4个回答
7
投票

使用`而不是'

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
投票

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

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
投票

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

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

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)
)
© www.soinside.com 2019 - 2024. All rights reserved.