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 服务器版本相对应的手册,以在
第 3 行的 'item-name' VARCHAR(255) NOT NULL, 'item-description' TEXT, 'listing-id''附近使用正确的语法

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

4

5 回答 5

10

使用`代替'

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)
    )
于 2013-07-30T15:28:55.880 回答
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)
)
于 2013-07-30T15:29:03.007 回答
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)
)
于 2013-07-30T15:29:48.010 回答
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)
)
于 2013-07-30T15:31:49.957 回答
0

也许来晚了。但这对我有用。

CREATE TABLE 产品(id INT NOT NULL AUTO_INCREMENT,[item-name] VARCHAR(255) NOT NULL,[item-description] TEXT,[listing-id] VARCHAR(50),PRIMARY KEY (id))

于 2022-02-04T07:16:06.370 回答