Duplicate entry '0' for key 'PRIMARY'的一种可能的解决办法

news/2025/6/19 18:27:17

在MySQL设计好数据库往往数据库中插入数据的时候,

因为主键ID默认是不赋值的,只给其他项目赋值了,相关的SQL代码是这样的

  StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into  tb_enterprise_product(");
            strSql.Append("enterprise_id");
            strSql.Append(",datetime");
            strSql.Append(",value");
            strSql.Append(",product");
 
            strSql.Append(") values(");
            strSql.Append("@enterprise_id");
            strSql.Append(",@datetime");
            strSql.Append(",@value");
            strSql.Append(",@product");
 
            strSql.Append(")");
            MySqlParameter[] parameters = new MySqlParameter[]
            {
          new  MySqlParameter("@enterprise_id",  MySqlDbType.Int32)
      , new  MySqlParameter("@datetime", MySqlDbType.VarChar)
      , new  MySqlParameter("@value", MySqlDbType.VarChar)
      , new  MySqlParameter("@product", MySqlDbType.VarChar)
          };

数据库的设计是这样的


可以发现因为ID是主键   所以SQL语句没有给ID赋值

那么问题来了,id是int类型,int类型如果不允许为空那么会被默认为0,所以插入第二条数据时,数据库中已经有了主键为0的数据,所以冲突了,产生了错误!

Duplicate entry '0' for key 'PRIMARY'

那么,解决办法时,把id字段设置为自增类型,相关SQL语句是:

create table t_user( id int primary key auto_increment ) 

 


https://dhexx.cn/news/show-156336.html

相关文章

前端脚本!网站图片素材中文转英文

写网页的时候, 我们经常需要使用图片素材, 图片素材如果是中文名, 挂到服务器会会引发乱码, 我们需要将图片名称改为英文字符才可以使用而起名是一个世界级难题, 为图片素材起英文名更是一件极其蛋疼的事有些人英语不好, 直接用拼音命名, 而拼音闹出的笑话更是无法计量...最近接…

c# XML和实体类之间相互转换(序列化和反序列化)[砖]

link: http://blog.okbase.net/haobao/archive/62.html by: 好饱 我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改。 1234567891011121314151617181920212223242526272829303132333435…

andoid的socket测试为什么出现这个错误:java.net.ConnectException: failed to connect to /192.168.0.8

基于android的Socket通信: Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后&#x…

ABAP OO练习

继续我们的看实例学习abap面向对象编程.在此次的例子中,我们以雇员的工资为蓝图,设计一个程序,然后再一步一步的改进我们写的程序,使其有更好的扩展性以及维护性.该例中所使用的基类是employee类,其子类包括:boss类,不管工作多长时间,他总是有固定的周薪(好爽!).销售员类commis…

[Github 项目推荐] 一个更好阅读和查找论文的网站

机器学习发展到现在,已经积累了非常多的文章,特别是深度学习火起来后,每年新增加的论文非常多,如果需要研究某个领域,不仅需要阅读这个领域经典的论文,也必须时刻关注最新的学术进展,比如最近两…

解决: java.net.ConnectException: Connection refused: connect

java.net.ConnectException: Connection refused: connect 1. 报错如上。 2. 原因和解决: 1)端口号被占用:杀死占用端口号(一般为8080)的进程,释放端口;彻底关闭 Tomcat 服务器,或…

Spring中的@Transactional(rollbackFor = Exception.class)属性详解

序言 今天我在写代码的时候,看到了。一个注解Transactional(rollbackFor Exception.class),今天就和大家分享一下,这个注解的用法; 异常 如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常…

Python面向对象编程学习笔记2

以上方式不推荐使用 以上方式不推荐使用 转载于:https://www.cnblogs.com/chickenwrap/p/10264932.html

更改Eclipse下Tomcat的部署目录

使用eclipse开发是因为机器不够用myeclipse,eclipse也比myeclipse清爽很多,启动速度也快。这里的搭建开发环境使用: Jdk1.6Tomcat6Eclipse JEE, 工作目录如下环境目录如下: 安装路径: C:\Java\Jdk1.6.0 C:\…

Redis 主从切换的集群管理

2019独角兽企业重金招聘Python工程师标准>>> Redis单点时,当一台机器挂机了,redis的服务完全停止,这时就会影响其他服务的正常运行。下面利用redis sentinel做一个主从切换的集群管理。 下面两段官方的说辞: Redis Sen…