修改数据库数据出现:Duplicate entry for key ‘PRIMARY‘的原因(外加数据库语句报错合集)


标题对应的报错:
在这里插入图片描述
数据库查询的时候未发现还生成了其他多条记录,经过搜索后发现了其他多条数据!
意思是主键的值是不能出现两条重复的记录的,在修改的时候不能修改成已存在的数值。
在这里插入图片描述
关于主键和多个主键(联合主键)的区别:
主键的唯一性和联合主键概念辨析

Mysql报错

Mysql基础合集

  • 1.UTF8:一个汉字=3个字节
    GBK:一个汉字=2个字节

Oracle报错

Oracle 基础合集

1.to_number和to_char恰好是两个相反的函数;

SQL Server报错

> 1. 不能将显式值插入时间戳列。请对列列表使用 INSERT 来排除时间戳列,或将 DEFAULT 插入时间戳列。 (2021.12.30)

解决方法:
        SQL Server中的timestamp类型,不能插入显式值,将插入语句中对应字段插入删去即可。

> 2. 将截断字符串或二进制数据

解决方法:
        主要原因就是你增加的数据字段长度超过数据库中字段所定义长度,去查看一下自己数据库中的字段的长度,一般是误写出来的,查看一下自己数据库中需要自己设置字段类型长度的。

> 3.Mybatisplus savebatch出现 Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获得结果。

解决方法:
将实体类中的主键自增id的TableId注释掉

> 4.SQL SERVER实现limit,与mysql不同

>>>查询前5条
select TOP 5 *from browserecord where username = '1';
查第4到第7
SELECT TOP 4 * FROM browserecord 
WHERE browserecord.recordid
NOT IN
(SELECT TOP 3 recordid FROM browserecord)

>>>!!!另外一种分页查询的方式
select id from student
order by id ASC OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY !!!这种方式一定要加order by 不然会报错 

SQL Server 基础合集

1.一个中文占两个字符
2.字段为nvarchar时,在写 LIKE 或者 = 时,需要写 LKIE N’%模糊查询%’ 前面需要加个N,才能转换为nchar类型


版权声明:本文为weixin_40689677原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。