当前位置: 首页 > news >正文

【MySQL报错】:Column count doesn’t match value count at row 1

MySQL报错:Column count doesn’t match value count at row 1
意思是存储的数据与数据库表的字段类型定义不相匹配.

由于类似 insert 语句中,前后列数不等造成的
主要有3个易错点:

  1. 要传入表中的字段数和values后面的值的个数不相等。
    由于类似 insert 语句中,前后列数不等造成的
    如1:省略数据库表的列名
    INSERT INTO table_name
    VALUES (value1, value2, value3,…)
    改为:补全列名
    INSERT INTO table_name (column1, column2, column3,…)
    VALUES (value1, value2, value3,…)
    如2:列数不相等,则检查相匹配的列数
    INSERT INTO table_name(col_name1, col_name2, col_name3) VALUES(‘value1’,‘value2’);

  2. values的值类型与表中定义的字段类型不相符
    解决办法:检查段类型是否正确, 是否越界, 有无把一种类型的数据存储到另一种数据类型中.
    看看访问数据库的sql语句是否书写错误,赋值的参数是否与字段类型一致
    比如有以下代码:
    eg:一个表中有如下6个字段:
    在这里插入图片描述
    sql = "insert into user(id_card, passwd) values({}, '{}';".format(127, '111')
    表中定义的id_card是字符串类型,但是这里传入的是整型。不相符。

另外,多说一句:这里的values值的类型与传入的参数类型无关。
比如:values({})这是一个整型,values(‘{}’)这是一个字符串类型
类型区别的重点在与values中的{}是否被单引号括起来,如果括起来了就是字符串,没有就是整型。而与format()中参数类型无关。

  1. 书写错误。
    如标点符号,英文符号错输成中文;如多出空格等
    注意:逗号,括号,分号都要用英文的不要写成中文的!!!!!!!(我就是这样错的 哭~)

相关文章:

  • Reactor/Epoll为什么可以高性能?
  • LeetCode(977):有序数组的平方
  • 图片类型转换
  • 使用 Python包管理工具 uv 完成 Open WebUI 的安装
  • 【Ubuntu设备端口绑定】
  • 电机控制常见面面试问题(十九)
  • 单链表结点删除
  • PostgreSQL:索引与查询优化
  • 蓝桥杯 整数变换
  • 深入理解 Git Stash:功能、用法与实战示例
  • 第一次程序Hello Python
  • 【数据结构】C语言实现树和森林的遍历
  • WPF x:Static与StaticResource
  • 基于 Hydrus 软件的土壤水、热、盐及污染物迁移模型与案例分析
  • [图形学]在半球面上按照微表面模型采样
  • 《深入探索 C++对象模型》-- 对象实例直接访问成员 VS 通过指针或引用访问成员 P99扩展解释
  • 科技赋能|ZGIS综合管网智能管理平台守护地下城市生命线
  • Nginx目录结构
  • Mininet--moduledeps.py源码解析
  • 为何服务器监听异常?
  • css在网站开发的应用/百度人气榜
  • 比利时网站的后缀/百度网站怎么提升排名
  • 政府网站建设 安徽/百度ai人工智能平台
  • 石家庄网站seo服务/快速开发平台
  • 公司信息查询网/自助优化排名工具
  • 云南旅游网站建设/网赌怎么推广拉客户