【问题标题】:"Column count doesn't match value count at row 1" PKID Counts as Column even with AUTOINCREMENT?“列计数与第 1 行的值计数不匹配”即使使用 AUTOINCREMENT,PKID 也算作列?
【发布时间】: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","re​​gion":"testregion14","site":"testsite13","area":"testarea12","category":"testcategory11","id": "testid10","re​​post_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}')
  • 效果很好!我不敢相信这是一个简单的修复!我重回正轨并继续我的项目。这是我第一次使用堆栈溢出,有没有办法让系统知道你是回答我问题的人?!
  • 我已将其发布为答案。如果你愿意,你可以接受它。

标签: mysql sql


【解决方案1】:

这样,您将添加多行,每行一列。 试试.. VALUES ('${pg.country}', '${pg.region}', '${pg.site}'..., '${pg.compensation}')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-24
    • 2020-01-10
    • 2014-01-17
    • 2019-09-18
    • 2016-12-10
    相关资源
    最近更新 更多