MySQL代码的问题?

MySQL代码的问题?,mysql,primary-key,create-table,Mysql,Primary Key,Create Table,我在主键附近的某个地方遇到了一个错误,但我不知道它到底是什么,有人能看一下吗 CREATE TABLE `reports` ( `key` INT UNSIGNED AUTO_INCREMENT, `role` VARCHAR(70), `region` VARCHAR(70), `inspection_type` VARCHAR(70),

我在主键附近的某个地方遇到了一个错误,但我不知道它到底是什么,有人能看一下吗

CREATE TABLE `reports` (

    `key`                   INT UNSIGNED AUTO_INCREMENT, 
    `role`                  VARCHAR(70), 
    `region`                VARCHAR(70),
    `inspection_type`       VARCHAR(70),
    `inspection_number`     VARCHAR(70),
    `customer_number`       VARCHAR(70),

    `report_date`           DATE DEFAULT NULL,  



    `order_date`            DATE DEFAULT NULL,  


    `customer`              VARCHAR(70),
    `customer_division`     VARCHAR(70),
    `location`              VARCHAR(70),
    `memo`                  VARCHAR(255),       
    `billingkey`            VARCHAR(70),

    PRIMARY KEY(key)

) ENGINE=InnoDB DEFAULT CHARSET=UTF8;

用反引号括起来。它是一个


是保留字。从技术上讲,您必须执行以下操作:

PRIMARY KEY(`key`)

要使用它,但不要调用主键
key

您需要转义单词key,它是一个保留关键字:

.
.
.     
PRIMARY KEY(`key`)

) ENGINE=InnoDB DEFAULT CHARSET=UTF8;

这个错误是…?人们为什么要这样做?如果现在重新考虑你的列名还不晚,你应该选择
key
以外的东西来避免以后更多的麻烦。@micharl没办法,这是客户的要求,不是我可以协商的=(可能与+1重复更好,如果可能的话,不要命名你的列键。我这里有太多的潜在错误。+1是因为你在我输入答案的同时将其作为注释键入的…我经常查找列表以获得答案,因此当我开始在Chrome中键入
my
时,MySQL保留关键字列表会立即弹出。)立刻。
.
.
.     
PRIMARY KEY(`key`)

) ENGINE=InnoDB DEFAULT CHARSET=UTF8;