首页 > 解决方案 > mysql 在列中插入值:int DEFAULT 0 导致错误

问题描述

我无法找出确切的问题。当我从下面提到的查询中删除索引参数并尝试插入数据时,它工作正常,但尝试添加索引会导致错误。这是我的表架构:

CREATE TABLE IF NOT EXISTS `address_list` (
  `email` varchar(100) NOT NULL,
  `currency_name` varchar(50) NOT NULL,
  `address` varchar(50) NOT NULL,
  `label` varchar(100) NOT NULL,
  `index` int DEFAULT 0,
  `address_type` varchar(50) NOT NULL,
  `balance` varchar(500) DEFAULT "0.0",
  `timestamp` TIMESTAMP default CURRENT_TIMESTAMP
)

这是我的插入查询:

insert into address_list (email,currency_name,address,label,index,address_type) Values ('abc@gmail.com','bitcoin','mgbtUQt7ppCEhxWmvicxrbEDYSom5kNk8X','test address',3,'wallet');

错误 :

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index) Values ('abc@gmail.com','bitcoin','mgbtUQt7ppCEhxWmvicxrbEDYSom5kNk8X'' at line 1

标签: mysql

解决方案


index是mysql中的保留字;将您的列重命名为其他名称,或者将其放在要使用它的反引号中:

insert into address_list (email,currency_name,address,label,`index`,address_type) Values ('abc@gmail.com','bitcoin','mgbtUQt7ppCEhxWmvicxrbEDYSom5kNk8X','test address',3,'wallet');

https://dev.mysql.com/doc/refman/8.0/en/keywords.html


推荐阅读