我正在尝试从命令行(Debian
)创建一个表,但它一直说我的语法有错误。对我来说它看起来很好,我已经由2个不能找到问题的人检查了。
CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT,
uuid VARCHAR(32) NOT NULL,
key VARCHAR(50) NOT NULL
);
一个人说删除NOT NULL但我仍然有同样的问题。
答案 0 :(得分:3)
KEY是一个保留字,尝试使用my_key
进行更改 CREATE TABLE users (id INT( 6) UNSIGNED AUTO_INCREMENT,
uuid VARCHAR(32) NOT NULL,
my_key VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`));
答案 1 :(得分:1)
<强>抱歉,强>
对于AUTO_INCREMENT字段,您必须在此COLUMN上有一个键。
这样可行:
CREATE TABLE `user` (
`id` int(6) unsigned NOT NULL AUTO_INCREMENT,
`uuid` varchar(32) DEFAULT NULL,
`key` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
答案 2 :(得分:1)
MySQL有许多不能用作列名的保留关键字。在这里,您使用key
作为列名,并且因为它是MySQL中的保留关键字,您需要将列的名称更改为非保留关键字的内容。
您可以找到不能用作列名here的保留关键字的完整列表。
答案 3 :(得分:0)
您用于第三列的列名“key”是保留字,您只需更改名称。
好吧,人们可能无法知道编程语言中的所有现有关键字,但是在编写代码时可以通过使用支持颜色代码的文本编辑器或集成开发环境(IDE)来帮助自己。它有很大的帮助。