sql server已忽略重复的主键的错误分析
2022/1/19 2:06:47
本文主要是介绍sql server已忽略重复的主键的错误分析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在数据的建表中,一般进行下列的语句进行数据表的建立。如下:
CREATE TABLE [dbo].[RMS_FACRPT_RVOK] (
[ID] bigint NOT NULL IDENTITY(1,1) ,
[SRCMSGDATE] datetime2(7) NOT NULL DEFAULT (getdate()) ,
[USERID] varchar(7) COLLATE Chinese_PRC_CI_AS NOT NULL DEFAULT '' ,
[ECID] int NOT NULL DEFAULT ((0)) ,
[PTCODE] varchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL DEFAULT '' ,
[PTMSGID] bigint NOT NULL DEFAULT ((0)) ,
[LOCALGATENO] int NOT NULL DEFAULT ((0)) ,
[PHONE] varchar(22) COLLATE Chinese_PRC_CI_AS NOT NULL DEFAULT ('ERRPHONE') ,
[RECVRPTTM] datetime2(7) NOT NULL DEFAULT (sysdatetime()) ,
[ERRORCODE] varchar(8) COLLATE Chinese_PRC_CI_AS NOT NULL DEFAULT '' ,
[RMSRPTTYPE] tinyint NOT NULL DEFAULT ((0)) ,
[SIMLTDTYPE] tinyint NOT NULL DEFAULT ((0)) ,
CONSTRAINT [PK_RMS_FACRPT_RVOK] PRIMARY KEY ([ID])
)
ON [PRIMARY]
GO
CREATE INDEX [IDX_RMS_FACRPT_RVOK_PTMSGID] ON [dbo].[RMS_FACRPT_RVOK] //PTMSGID是唯一的索引
([PTMSGID] ASC)
ON [PRIMARY]
GO
如上可以看到,primary key对应的是ID(自增的ID),一般不会重复的。如果将该ID进行如下图的设制:
如果出现 ID冲突的话(也就是强行的置为重复的话), sql server会报"已忽略重复的主键"。如果你程序入库的时候报”已忽略重复的主键“,但是这绝对不是这地方引起的,因为ID这个是自增的值 ,在数据库中是不存在重复的。那么这情况是怎么导致的呢?
再回头看下如上,我这设了一个唯一的索引IDX_RMS_FACRPT_RVOK_PTMSGID(和上图不符),我只要在该唯一的索引的属性这里,我再设置该值 索引为”已忽略重复的主键“,那么当PTMSGID这个字段的值重复的时候,数据库的日志就会报出”已忽略重复的主键"这样的错误!!!
这篇关于sql server已忽略重复的主键的错误分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)