问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库重导入数据,原数据库主键不连续,导致外键出问题。

发布网友 发布时间:2022-04-09 17:32

我来回答

3个回答

懂视网 时间:2022-04-09 21:53

在数据库表中,如果指定了主键为“标识”,并且打开了自增开关,当删除表中末尾某些数据再添加新数据时,主键标识就会不连续,这是因为数据库内部并未完全释放删除数据的内存,为了使编号连续,需要专门写相关的存储过程。

一、需要将表中主键标识的“自动增加”功能关闭;一般设置主键为INT类型。

二、编写存储过程

 

 

CREATE TRIGGER InsertTrigger

ON Products

INSTEAD OF INSERT

AS

BEGIN

  SET NOCOUNT ON

  DECLARE @I INT

  SET @I =0

  SELECT * INTO # FROM inserted

  SELECT @I=MAX(ProductID) FROM Products

 @I = @I+1

  UPDATE # SET ProductID= @I

  insert Products SELECT * FROM #

END

  

其中:“inserted”是新插入数据的临时表,该表中的数据还未交付到数据库表中;

“#”:当前添加内容的数据表记录。

数据库中标识主键因删除数据不连续的问题

标签:rom   设置   div   update   添加内容   数据   products   sql   插入数据   

热心网友 时间:2022-04-09 19:01

有外键的表以下叫A,无外键的叫B
一:新建各种表,与原来的表一模一样
二:再B表中插入一个字段kk,成功则保存
三:导入A表数据,所有ID会自动生成新的
四:导入B表数据,所有ID会自动生成新的,把原来ID放到kk这个字段里
五:初步定为代码操作,原理.
1.遍历A,查出A一共有多少条记录
2.一条一条的取出A中的外键(取一条记录再执行3,4,5再取下一条记录)
3.用A中的外键去找B中的kk
4.找到B中的对应的记录,返回B中的ID
5.把B中的ID赋给A的外键
6.删除kk字段

所需要的参数:
A,B两张表的名字,A表的外键字段名,B表的原来ID的字段名与现在ID的字段名
代码中的sql语句:select * from w where id<>kk
Select * from B(表名) where 原来Id的字段名<>现在id的字段名
代码中的sql语句:update y set wj=”+w.getId()+” where wj=”+w.getkk()
Update A(表名) set A表的外键名=现在B表的id的字段名 where A表的外键名=原来B表的id的字段名

思路:先查出B表中原来ID与现在ID不相同的记录,再改掉A表中(外键等于原来B表的ID)的(外键等于现在B表的ID)

热心网友 时间:2022-04-09 20:19

导入数据前在主表添加列,用于唯一标识每一行(当主键重新生成后,这一列不会变化),然后再根据这一列更新外键。追问能再说详细一点吗?谢谢。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 给抖音点赞加关注任务的是多少- 问一问 在百度知道里怎么加QQ啊 求大家推荐好用的美缝剂品牌 市面上哪款美缝剂比较好用?求合适的~ 美缝剂哪个品牌比较好一点,东方雨虹这个牌子的美缝剂好用吗? 剑桥大学有哪些学院 家里装修需要美缝剂,有没有好用一点的美缝剂? 电脑自身有屏幕录制的功能或者软件吗? 剑桥大学 默里·爱德华兹(Murray Edwards)学院怎么样? oppor11键盘上最常访问网址怎么设置? 美缝剂怎么施工效果好啊?有什么好用的美缝剂推荐吗? kaos请问有什么网站可以更好的了解美国大学的专业特点吗? google浏览器 最常访问的网页关闭了 怎么打开 家里卫生间和厨房用什么美缝剂比较好?有推荐的吗? 对于英语专业学生 翻译的学习 大家帮忙推荐几本书哈 搜狗浏览器怎么添加最常访问 家里装修用什么美缝剂好? 剑桥大学和北京大学哪个好些? 最常访问怎么恢复 newlevelcambridge翻译 好用的美缝剂有哪些? 请问有机食品认证和无公害认证怎么做?主要做冷冻食品、是怎么样的一个流程?价格大概多少?? 在合肥报个舞蹈班,学一个舞蹈要多少钱呢? - 信息提示 360浏览器中的最常访问页面经常会出现没浏览过的网页,每次重新打开网页后都要重新删除 合肥市绿都五环舞蹈培训班学费是多少 谁会封QQ号 红米note浏览器的最常访问怎么清除? 搜狗高速浏览器的最常访问怎么添加新的网址? 怎样在360浏览器的空白页显示最常访问的网址? 40英镑等于多少人民币,1美元等多少人民币,一万韩元等多少人民币 学舞蹈一般多少钱 40元英镑等与人民币多少钱? 四十英镑等于中国多少钱 学舞蹈一年多少钱? 这顿饭花了我们大约40英镑,很划算的英语 合肥蒙悦琴行舞蹈培训如何收费 在英国花 40英镑 可以吃一顿dinner吗?稍微好点的 巨鹿之战是谁发起的?有哪些影响呢? 学舞蹈一年需要多少钱?