创建 MySql table 时出错

Error while creating a MySql table

我正在尝试从我的命令行 (Debian) 创建一个 table,但它一直说我的语法有错误。对我来说它看起来不错,我已经让 2 个不同的人检查过,他们也找不到问题。

CREATE TABLE users (
   id INT(6) UNSIGNED AUTO_INCREMENT, 
   uuid VARCHAR(32) NOT NULL, 
   key VARCHAR(50) NOT NULL
);

有人说删除 NOT NULL 但我仍然遇到同样的问题。

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

您在第三列中使用的列名"key"是保留字,您只需更改名称即可。

好吧,人们可能无法知道一种编程语言中所有现有的关键字,但可以通过使用支持 colour-code 的文本编辑器或集成开发环境(IDE 来帮助 himself/herself ) 编写代码时。很有帮助。

对不起,

对于 AUTO_INCREMENT 字段,您必须在此列上有一个键。

所以这有效:

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;

MySQL 有很多不能用作列名的保留关键字。这里你使用 key 作为列名,因为它是 MySQL 中的保留关键字,你需要将列名更改为不是保留关键字的名称。

您可以找到不能用作列名的保留关键字的完整列表here