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;