执行MySQL INSERT语句遇#1054错误:未知列'Dorel',求解决方案
解决MySQL错误#1054:Unknown column 'Dorel' in 'field list'
兄弟,我帮你排查了你的SQL代码,这个#1054错误的根源和其他潜在问题都给你列出来了,还有修改后的完整代码:
错误核心原因
你在INSERT语句里犯了两个关键错误:
- 反引号用错地方了:你把字符串值(比如
Dorel)用反引号`包裹了,MySQL会把反引号里的内容识别成列名,而不是字段值,所以它找不到叫Dorel的列,直接报错。字符串值应该用单引号'包裹。 - 自增ID手动传值没必要:你的
id字段定义了AUTO_INCREMENT,数据库会自动为每条新记录生成唯一的自增ID,完全不需要手动插入值,反而容易出问题。
其他潜在问题(必须修复,不然插数据还是会报错)
- 字段类型不匹配:
telefon字段你定义成int(20),但插入的是带空格的号码(比如0789 666666),int类型无法存储带空格的内容,而且开头的0会被自动丢弃。建议把telefon改成varchar(20)类型,更符合电话号码的存储需求。 - 字符串值未加单引号:所有非数字类型的字段值(比如
nume、denumire、descriere等)都需要用单引号包裹,不然MySQL会把它们当成关键字或列名。 - 非法日期格式:有些日期值是无效的(比如
2018 Feb 30、2018.04.31),如果要存日期,建议把data字段改成DATE或DATETIME类型,同时用合法的日期格式(比如'2018-05-18')。
修改后的完整SQL代码
CREATE DATABASE IF NOT EXISTS `MyDatabase1`; USE `MyDatabase1`; -- 别忘了切换到目标数据库,不然会在默认库建表 CREATE TABLE IF NOT EXISTS `produse` ( `id` int(15) NOT NULL AUTO_INCREMENT, `nume` varchar(45) NOT NULL, `denumire` varchar(44) NOT NULL, `pret` int(10) NOT NULL, `descriere` varchar(150) NOT NULL, `categorie` varchar(15) NOT NULL, `data` DATE, -- 改成DATE类型,存储合法日期 `poza` varchar(300), `telefon` varchar(20) NOT NULL, -- 改成varchar存储电话号码 PRIMARY KEY (`id`) ); -- 插入时去掉id字段,让数据库自动生成 INSERT INTO produse (`nume`,`denumire`,`pret`,`descriere`,`categorie`,`data`,`poza`,`telefon`) VALUES ('Dorel','auto', 1500,'de vanzare bmw g30 pret in euro','auto-moto','2017-05-18','D:/Xamp/htdocs/poze/G30.jpg','0789 666666'), ('Gicu','motocicleta',3700,'vand moto bmw 9r ireprosabil','auto-moto','2018-08-23','D:/Xamp/htdocs/poze/9r.jpg','0788 884221'), ('Robi', 'manusa box', 500,'de vanzare nou','sport','1976-04-12','D:/Xamp/htdocs/poze/box.jpg','0788 321654'), ('Spiderman','canoe',1000,'vand pret in Dinar','sport','2018-02-28','D:/Xamp/htdocs/poze/canoe.jpg','0744 434 534'), -- 修正2月日期为28号 ('Wonder Woman','cuptor',40000,'vand cuptor secon hand bun','home','2045-01-23','D:/Xamp/htdocs/poze/cuptor.jpeg','0788 889 889'), ('Batman','e30',3700,'vand bmw e30 stare exceptionala','auto-moto','2016-04-20','D:/Xamp/htdocs/poze/e30.jpg','0999876'), ('Elvis Presley','motocicleta Harley',12000,'schimb cu viata de preferat lunga','auto-moto','1977-05-23','D:/Xamp/htdocs/poze/Harley.jpg','1111'), ('Michael Jackson','arc compound',5000,'vand hoyt nu am ce sa spun despre','sport','1999-03-12','D:/Xamp/htdocs/poze/hoyt.jpg','0333 333 333'), ('Traian basescu','Lada',24000,'vand sau schimb cu vapor','auto-moto','2000-01-01','D:/Xamp/htdocs/poze/lada.jpg','0000 000 000'), ('Victor Ponta','laptop Dell',3000,'schimb cu permis de pescuit','auto-moto','2013-06-06','D:/Xamp/htdocs/poze/laptop.jpg','0999 787878'), ('Vin Diesel','Indian',10000,'mint condition Indian for sell','auto-moto','2014-09-09','D:/Xamp/htdocs/poze/indian.jpg','0100 5555 22'), ('Elena Udrea','mobila',0,'schimb cu lenjerie intima','home','2013-08-07','D:/Xamp/htdocs/poze/mobila.jpg','0888 888 888'), ('Ronaldo','nevasta',0,'schimb nevasta cu o motocicleta','home','2018-06-23','D:/Xamp/htdocs/poze/nevasta.jpg','78878878'), ('Marko Bela','Lada Niva',45000,'cumpar Lada Niva, cu pret mai ieftin nu discut','auto-moto','2018-05-12','D:/Xamp/htdocs/poze/niva.jpg','898989'), ('Gizi','parapanta ozone',1500,'vand parapanta second,folosit putin','sport','2018-05-23','D:/Xamp/htdocs/poze/ozone.jpg','0745 233 445'), ('Simona Halep','Racheta alba',0,'dau gratis','sport','2018-04-30','D:/Xamp/htdocs/poze/racheta.jpg','090909'), -- 修正4月日期为30号 ('Valentino Rossi','s100rr',500,'For as little as 500 you can get brand new bmws 1000rr','auto-moto','2018-01-01','D:/Xamp/htdocs/poze/s100rr.jpg','7878787'), ('Superman','samsung tv',23000,'vand tv-ul ieftin,numai acum numai azi','electronice','2018-02-12','D:/Xamp/htdocs/poze/tv.jpg','666666'), ('Kojak','uscator de par',200,'vand uscator de par ca nu mai am par','electronice','2018-06-08','D:/Xamp/htdocs/poze/uscator.jpg','5666666'), ('Garcea','vw polo',20,'vand volkswagen polo merita vazut','auto-moto','2018-05-23','D:/Xamp/htdocs/poze/Polo.jpg','45454533'), ('Dorin Florea','pavaje',100,'de vanzare metrucub pretavantajos','home','2018-03-03','D:/Xamp/htdocs/poze/pavaj.jpg','0265 265 310');
额外提醒
- 记得执行
USE MyDatabase1;切换到目标数据库,不然表会建在默认的mysql或test库中。 - 日期类型如果用
DATE,必须用YYYY-MM-DD的格式,不然会插入失败或者变成无效日期。
内容的提问来源于stack exchange,提问作者Loui
相关产品推荐
相关产品推荐

