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

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

http://www.kler.cn/a/597022.html

相关文章:

  • 只是“更轻更薄”?不!遨游三防平板还选择“更强更韧”
  • 为什么 Redis 选择单线程模型?
  • 基于区块链的 Web3 数据保护技术探索
  • 现代前端开发框架对比:React、Vue 和 Svelte 的选择指南
  • Linux进程信号(下:补充)
  • 数字证书 与 数字签名 介绍
  • Beyond Compare 4注册激活方法
  • 使用HTML5和CSS3实现3D旋转相册效果
  • IoTDB 常见问题 QA 第六期
  • 一条不太简单的TEX学习之路
  • tryhackme——The Lay of the Land
  • 从报错到成功:Mermaid 流程图语法避坑指南✨
  • 嵌入式基础知识学习:UART是什么?
  • kotlin 函数引用
  • SQL语言——MySQL
  • 解决 ECharts Map3D 在高分辨率大屏下鼠标与地图位置错位的问题
  • 如何理解java中Stream流?
  • Python Django入门(创建网页:学习笔记主页)
  • hive:处理JSON格式(get_json_object()函数),连续登录题型,快速生成表(explode,stack),迭代计算
  • 深入理解 lt; 和 gt;:HTML 实体转义的核心指南!!!