主键是自增长但是还是提示不能插入重复键

  今天客户那边的服务器被人强制关机了,然后系统就出问题了,明显是自增长的列但是却提示不能插入重复键

以下来自网络,

SQL 不能插入重复键-错误 主键列是自动增长

具体描述如下:
服务器: 消息 2627,级别 14,状态 1,行 1
违反了 PRIMARY KEY 约束 ‘PK_Student‘。不能在对象 ‘Student‘ 中插入重复键。
语句已终止。

(我才用第二种才起作用)

产生原因:这个错误可能通过某个操作把自增列的种子给改小了,所以insert的时候报重复键错误。
解决方案:

1、直接在数据库上操作,取消自增长,再加上自增长,种子恢复正常。 但这种操作方式如果数据库比较大的话,会报超时的错误,可以使用第二种解决方案,通过语句来完成。
2、重置自动增长列种子: dbcc checkident(‘tb‘,reseed,业务表最大值+1) 第3个参数是业务表自动增长列最大值+1

时间: 2024-12-12 18:51:58

主键是自增长但是还是提示不能插入重复键的相关文章

MySQL数据库8(九)列属性之主键、自增长

主键 顾名思义,主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性 创建主键 随表创建 系统提供了两种增加主键的方式: 1.直接在需要当做主键的字段之后,增加primary key属性来确定主键 2.在所有字段之后增加primary key选项:primary key(字段信息) 表后增加 基本语法:alter table 表名 add primary key(字段); 查看主键 方案1: 查看表结构 方案2:查看表的创建语句 删除主键 基本语法:alter ta

linux编程中接收主函数返回值以及错误码提示

程序A创建子进程,并调用进程B,根据不调用的不同情况,最后显示结果不同. #include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> #include <errno.h> int main() { pid_t pid, rpid; int stat; if ((pid = fork()) < 0) { perror("for

解决无法删除表,提示被外键约束引用

有时想删除某个表时,提示"无法删除对象 'Orders',因为该对象正由一个 FOREIGN KEY 约束引用",原因很简单不要急躁,它被其它表的外键引用了,所以无法删除,在此只需先找到哪些表的外键引用了该表的字段.通过系统函数就能解决(SQL Server系统函数提供了非常完善的功能,能代替我们查找和解决许多问题). select    fk.name,fk.object_id,OBJECT_NAME(fk.parent_object_id) as referenceTableNam

提示不能从T_ECC_MEMBER_L插入重复键值

问题:当新增会员档案时,提示不能从T_ECC_MEMBER_L插入重复键值: 解决方法: /*查询异常档案资料,并且找出最大的正常id,插入临时表*/ select  fpkid,2553587+ROW_NUMBER() over(order by fpkid) xuhao into memberl from T_ECC_MEMBER_L where fpkid  like '100002%' /*更新*/ update a set  a.fpkid=xuhao From T_ECC_MEMBE

在JS中控制键盘输入 &quot;delete键、backspace键、enter键&quot;(涉及JSP、JQuery)及其他键

PS:delete键:删除“光标”之后的文本:backspace键:删除“光标”之前的文本,称“退格删除键”:enter键:一是确认输入的执行命令,二是在文字处理中起换行的作用:我用的要起的作用就是:将目前的页面加载,若有值要获取,获取了之后加载页面:称“回车键”. <script type="text/javascript">var val=0; function delVal(){//[在对应的输入框加上属性: onkeydown="delVal();&quo

Mysql复合主键中自增长字段

Google Analytics的ID一般形如:UA-18xxxxx-1,UA-18xxxxx-4, 我们可以将它分成两段来看:字段1:UA-18XXXXX是指帐户的ID:字段2:字段1后附加的1.4,刚分别是指该帐户名下的两个网站.有一段时间很 纠结这样的ID怎么去维护,直到最近查阅到Mysql手册才发现,原来Mysql原生就很好的支持了这种含自动增长字段的复合主键,所以字段2是存储引擎 自动计算出来的.计算方式:MAX(auto_increment_column) + 1 WHERE pre

powerdesigner设置表主键列为自动增长

powerdesigner 版本12.5 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties ———>columens ,双击要设置的列(显示列的序号的那个按钮,单击后,会显示横向的黑色箭头).打开column properties 对话框. 在 ‘general’ 项中 的最下面,找到 sequence下拉框 ,后面有三个按钮就 ‘create’,‘select’,‘properties’. 新建的话就点击‘create' 打

mysql5.5基础 create table... 创建不可空、主键、自增长的字段

礼悟:    公恒学思合行悟,尊师重道存感恩.叶见寻根三返一,江河湖海同一体.          虚怀若谷良心主,愿行无悔给最苦.读书锻炼养身心,诚劝且行且珍惜. 数据.数据,命根就在数据.操作数据库一定要谨慎小心.给最苦 这里的代码,看看就好,要有自己的判断.遇到抉择,要不耻上下问. mysql:5.5                     os:Windows7 x64 代码及效果 mysql> create table student( -> stdId int not null au

Oracle 设置主键Id自增长

--创建序列:CREATE SEQUENCE seq_Grelation -- 尽量使用统一前缀命名,方便管理         INCREMENT BY 1   -- 自增步长 这里设置为1       START WITH 1     -- 计数起点 这里设置为1       NOMAXVALUE       -- 不设置最大值 可选项 MAXVALUE|MINVALUE       NOCYCLE          -- 一直累加,不循环         CACHE 10; --创建触发器: