【发布时间】:2021-05-06 11:54:52
【问题描述】:
“列数与第 1 行的值数不匹配”
{ 代码:'ER_WRONG_VALUE_COUNT_ON_ROW', 错误号:1136, sqlMessage: "列数与第 1 行的值数不匹配", sqlState: '21S01', 指数:0, sql: "INSERT IGNORE INTO craig.cdata (pkid,country,region,site,area,category,id,repost_of,last_updated,title,neighborhood,url,lat,lon,address,misc,compensation) 值 (pkid),( 'testcountry15'), ('testregion14'), ('testsite13'), ('testarea12'), ('testcategory11'), ('testid10'), ('repostoftest9'), ('lastupdatedtest8'), ('titletest7 '), ('neighborhoodtest6'), ('urltest5'), ('lattest4'), ('lontest3'), ('addresstest2'), ('misctest2'), ('compensationtest1');" }
控制器:{"country":"testcountry15","region":"testregion14","site":"testsite13","area":"testarea12","category":"testcategory11","id": "testid10","repost_of":"repostoftest9","last_updated":"lastupdatedtest8","title":"titletest7","neighborhood":"neighborhoodtest6","url":"urltest5","lat":"lattest4 ","lon":"lontest3","address":"addresstest2","misc":"misctest2","compensation":"compensationtest1"}
DROP DATABASE IF EXISTS `craig`;
CREATE DATABASE `craig` DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_unicode_ci;
USE `databasename`;
DROP TABLE IF EXISTS dbname.database1;
CREATE TABLE dbname.database1 (
`pkid` int unsigned NOT NULL AUTO_INCREMENT,
`country` varchar(200),
`region` varchar(200),
`site` varchar(200),
`area` varchar(200),
`category` varchar(200),
`id` varchar(200),
`repost_of` varchar(200),
`last_updated` varchar(200),
`title` varchar(200),
`neighborhood` varchar(200),
`url` varchar(200),
`lat` varchar(200),
`lon` varchar(200),
`address` varchar(200),
`misc` varchar(200),
`compensation` varchar(200),
PRIMARY KEY (`pkid`)
) AUTO_INCREMENT=1;
让查询 = INSERT IGNORE INTO craig.cdata (country,region,site,area,category,id,repost_of,last_updated,title,neighborhood,url,lat,lon,address,misc,compensation) VALUES ('${pg.country}'), ('${pg.region}'), ('${pg.site}'), ('${pg.area}'), ('${pg.category}'), ('${pg.id}'), ('${pg.repost_of}'), ('${pg.last_updated}'), ('${pg.title}'), ('${pg.neighborhood}'), ('${pg.url}'), ('${pg.lat}'), ('${pg.lon}'), ('${pg.address}'), ('${pg.misc}'), ('${pg.compensation}');
^^^ SQL 语句。我知道它不漂亮,但它是我能想到的最好的我自己学习的东西。我知道 PKID 不包含在此 SQL 语句中,这可能会产生错误“列计数与第 1 行的值计数不匹配”,我认为拥有 PK AI NN ID 的全部意义在于递增到下一个表更改的任何数据的新 id,在本例中为 INSERT IGNORE。我将此语句用于另一个工作方式完全相同的服务器!
我不认为我缺少逗号,但我也可能疯了!任何帮助将不胜感激。感谢您的时间。如果您需要任何信息,我会及时提供。
【问题讨论】:
-
这样,您将添加多行,每行一列。试试
('${pg.country}', '${pg.region}', '${pg.site}'..., '${pg.compensation}') -
效果很好!我不敢相信这是一个简单的修复!我重回正轨并继续我的项目。这是我第一次使用堆栈溢出,有没有办法让系统知道你是回答我问题的人?!
-
我已将其发布为答案。如果你愿意,你可以接受它。