ORA-01779: 无法修改与非键值保存表对应的列

简介: ORA-01779: 无法修改与非键值保存表对应的列

问题描述

55.png56.png

这个错误产生的原因是子查询的结果中,用来更新demo_t1的demo_t2表id不唯一,导致被更新对象test1中的一行可能要对应test2中的很多行,这样oracle就不知道该怎么更新


例如demo_t1中fname A fmoney '20'有可能对应demo_t2中fname A fmoney '100', ifname A fmoney '200' 这2个数据,所以导致无法更新.  57.png


解决办法

删除重复数据 给demo_t2加上一个主键

ALTER TABLE DEMO_T2 ADD PRIMARY KEY(FNAME);

再次尝试,更新成功58.png


57.png57.png

目录
打赏
0
0
0
0
12
分享
相关文章
Oracle 将表中的数据查出更改某一字段的值后再插入该表
Oracle 将表中的数据查出更改某一字段的值后再插入该表
201 2
MySQL变量使用与介绍之为查询结果增加序号列和自定义序号列
SQL三:用户表(包含字段有:用户ID[自增]、姓名、性别、民族、出生日期、身份证号),无论查询条件如何,要求查询的结果显示一个行号列(即:第一行显示1,第二行显示2,第三行显示3,依此类推)
309 0
MySql基础-笔记11-临时表、复制表、元数据、序列使用
MySql基础-笔记11-临时表、复制表、元数据、序列使用
194 0
MySql基础-笔记11-临时表、复制表、元数据、序列使用
Access2016删除主键列(图文操作)错误提示:若要删除主键,请在“设计”视图中打开该表并删除主键字段
Access2016删除主键列(图文操作)错误提示:若要删除主键,请在“设计”视图中打开该表并删除主键字段
Access2016删除主键列(图文操作)错误提示:若要删除主键,请在“设计”视图中打开该表并删除主键字段
Mysql数据库表字段设计优化(状态列)
初始状态码(java int 32 long 64),int 可以表示31种(除去0000),long可以表示63种(除去0000),当然不可能将0000赋值给初始状态,一般来讲,选择int还是long是根据具体业务需求来决定的。
792 0
Mysql数据库表字段设计优化(状态列)
DataTable 修改列名 删除列 调整列顺序
DataTable 修改列名 删除列 调整列顺序
244 0
Guid算法与标识列(自动增长字段)在表中的应用
Guid算法与标识列(自动增长字段)在表中的应用
209 0
Guid算法与标识列(自动增长字段)在表中的应用
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等