这个错误让我疯狂了几天
这是1000行文件中大约10行的一行,不会导入到我的表中。
我试图在insert语句中添加所有列,我尝试删除列,我已经复制到记事本中以确保没有奇怪的字符,我检查了行结尾,尝试替换空格,删除反引号和没有
有人可以指出解决方案。
使这个更奇怪,当我从客户端运行它时的一些行,如果我复制该输出并将其粘贴到新窗口它会运行正常,它会输出sql的错误。我试图从多个客户端(adminer,dbeaver,mysqlworkbench和phpmysql)运行,它在相同的位置返回相同的错误
DDL
CREATE TABLE `xxx_projects` (
`id` int(3) unsigned zerofill NOT NULL ,
`status` int(3) unsigned zerofill NULL DEFAULT 1,
`name` varchar(100) NOT NULL,
`gp_id` varchar(100) DEFAULT NULL,
`project_type` varchar(15) DEFAULT 'SFH',
`project_type_id` int(11) NOT NULL,
`master_plan_id` int(11) DEFAULT '0',
`client_id` int(3) unsigned zerofill NOT NULL,
`city_id` int(3) unsigned zerofill NOT NULL,
`image_id` int(11) DEFAULT NULL,
`lat` decimal(9,6) NOT NULL,
`lon` decimal(9,6) NOT NULL,
`kml_info` varchar(1000) DEFAULT NULL,
`url` varchar(1000) DEFAULT NULL,
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`closeout_date` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=922 DEFAULT CHARSET=utf8;
插入声明
INSERT INTO `xxx_projects`
(`id`, `status`, `name`, `project_type_id`, `client_id`, `city_id`, `lat`, `lon`)
VALUES (563,0,'Santa Ana Collection',10,135,256,33.73369 , -117.92058 );
错误讯息
SQL错误[1054] [42S22]:'字段列表'中的未知列''
答案 0 :(得分:0)
您将状态行声明为int,但是您尝试在其中放置一个字符。请注意' 0' 0是一个字符,0是一个整数。根据我对mysql的经验,我认为这是问题所在。希望这能解决您的问题。如果我是你,我也要宣布' lat'和' lon' as varchar。
答案 1 :(得分:0)
角色160(不间断的空间)是罪魁祸首
在我的原始源文件中,用户已从网页复制/粘贴到Excel中以获取数据
我没有正确消毒,最终在我的sql中使用了不间断的空格而不是char 32。
要在原始excel文件中解决这个问题,我使用了这个
SUBSTITUTE(JackedUpString,CHAR(160),CHAR(32))
希望这有助于其他人因为我没有在SO中找到与此相关的任何内容
This Article也非常有用