这个SQL插入语句有什么错误?

时间:2016-12-12 06:13:19

标签: mysql

CREATE TABLE `api_key` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `platform` char(2) NOT NULL,
  `key_type` char(1) NOT NULL,
  `key` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

INSERT  INTO api_key (key,key_type,platform,user_id,id) values ('123', '0', '00', '123', 'c89116d2');

始终输出:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   'key,key_type,platform,user_id,id)值附近('123','0','00',   '123','c89116d2')'在第1行

1 个答案:

答案 0 :(得分:1)

key是MySQL中的保留关键字,您应该避免将其用作列,表等的名称(如果可能的话,请不要使用它)。但是,您可以通过使用反引号转义列名key来解决此问题。请尝试以下INSERT

INSERT INTO api_key (`key`, `key_type`, `platform`, `user_id`, `id`)
VALUES ('123', '0', '00', '123', 'c89116d2');

请注意,为了保持一致性,我在反引号中转义了所有列,但只有key列才需要它才能使INSERT正常工作。