(1)、数据库中一般不允许更改数据。如果需要更改主码数据时,怎样处理?
答案:2 悬赏:70 手机版
解决时间 2021-11-19 09:59
- 提问者网友:骨子里的高雅
- 2021-11-18 21:34
(1)、数据库中一般不允许更改数据。如果需要更改主码数据时,怎样处理?
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-11-18 22:39
你是说主键吧?
如果想改主键,相当于重新做一条数据了,就是说 先开一个事物,读出原来的数据,复制不变的部分,删除原来的数据,再根据复制的数据新增一条数据,关闭事物。
没太懂楼主的试着删除被参照表中的主码是什么意思。删除主键的话不会出现什么情况,删了就删了。追问这里:主码=主键
你第一个问题应该是回答正确的,
第二个问题中你的疑问:
就是一共有多个表,其中 被参照表 中的主码删掉了,某些连接运算就不能进行了,此时系统会出现什么情况,我是电脑没装SQL Server(主要是装不好)所以才来问的追答如果没有主键外键相关联的话,主表的主键记录被删掉了,子表的数据就成垃圾数据了。不会出现什么情况。
如果建立主键外键的级联关系的话,应该可以自动级联删除(Oracle是这样,我想sql应该也可以做的)
如果想改主键,相当于重新做一条数据了,就是说 先开一个事物,读出原来的数据,复制不变的部分,删除原来的数据,再根据复制的数据新增一条数据,关闭事物。
没太懂楼主的试着删除被参照表中的主码是什么意思。删除主键的话不会出现什么情况,删了就删了。追问这里:主码=主键
你第一个问题应该是回答正确的,
第二个问题中你的疑问:
就是一共有多个表,其中 被参照表 中的主码删掉了,某些连接运算就不能进行了,此时系统会出现什么情况,我是电脑没装SQL Server(主要是装不好)所以才来问的追答如果没有主键外键相关联的话,主表的主键记录被删掉了,子表的数据就成垃圾数据了。不会出现什么情况。
如果建立主键外键的级联关系的话,应该可以自动级联删除(Oracle是这样,我想sql应该也可以做的)
全部回答
- 1楼网友:酒醒三更
- 2021-11-18 23:26
打开sql查询分析器,键入语句
update 表名 set key='改后主键' where key='改前主键';
需要此表中主键的联系不能实现。
update 表名 set key='改后主键' where key='改前主键';
需要此表中主键的联系不能实现。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯