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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 在MySQL设计好数据库往往数据库中插入数据的时候, 因为主键ID默认是不赋值的,只给其他项目赋值了,相关的SQL代码是这样的   StringBuilder strSql = new StringBuilder(); strSql.

在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 ) 


 

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 索引
Map存储两个key:Duplicate key 6
Map存储两个key:Duplicate key 6
163 0
|
12月前
|
关系型数据库 MySQL
Mysql 主键冲突(ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY')
Mysql 主键冲突(ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY')
743 0
|
4月前
|
数据库 Python
Duplicate entry for key username
Duplicate entry for key username
49 0
|
11月前
|
关系型数据库 MySQL 数据库
解决出现的SQLIntegrityConstraintViolationExceptionw:Duplicate entry ‘10‘ for for key ‘user.PRIMARY‘问题
解决出现的SQLIntegrityConstraintViolationExceptionw:Duplicate entry ‘10‘ for for key ‘user.PRIMARY‘问题
152 0
|
数据可视化 关系型数据库 MySQL
MySql命令报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘解决方案
MySql命令报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘解决方案
462 0
|
关系型数据库 MySQL 索引
不会2023年你还不知道Mysql中index、primary key、unique key、foreign key是什么和如何创建吧?
不会2023年你还不知道Mysql中index、primary key、unique key、foreign key是什么和如何创建吧?
79 0
|
SQL 数据库
ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE
120 0
ON DUPLICATE KEY UPDATE
|
SQL 关系型数据库 MySQL
MySQL - key、primary key、unique key、index 区别(二)
MySQL - key、primary key、unique key、index 区别(二)
1051 0
|
存储 Oracle 关系型数据库
MySQL - key、primary key、unique key、index 区别(一)
MySQL - key、primary key、unique key、index 区别(一)
358 0
MySQL - key、primary key、unique key、index 区别(一)