热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle视图dml,对视图进行dml操作时,怎么理解和判断那个表是keypreservedtable

对视图进行dml操作时,如何理解和判断那个表是key-preservedtable我创建两个结构一样的表,开始都没有加主键,然后再这两张表

对视图进行dml操作时,如何理解和判断那个表是key-preserved table

我创建两个结构一样的表,开始都没有加主键,然后再这两张表上用等值连接创建一个视图,分别对视图进行dml操作。

现在的问题是,oracle怎么选定join的表中为key-preserved table????

create table t1(id int,name varchar2(20),age int);

create table t2(id int,name varchar2(20),age int);

insert into t1 values(1,'sms1',20);

insert into t1 values(2,'sms2',20);

insert into t2 values(1,'sms',20);

create or replace view v_t1t2

as

select t1.id t1_id,t1.name t1_name,t1.age t1_age, t2.id t2_id,t2.name t2_name,t2.age t2_age from t1,t2 where t1.id=t2.id;

select * from v_t1t2;

insert into v_t1t2 values(11,'sms11',20,11,'sms11',20)  --多表连接的视图要做dml操作时,必须要有key-preserved table

ORA-01779: cannot modify a column which maps to a non key-preserved table

delete from v_t1t2

ORA-01752: cannot delete from view without exactly one key-preserved table

update v_t1t2 set t1_name='dba' where t1_id=1

ORA-01779: cannot modify a column which maps to a non key-preserved table

--添加一个主键

我在t1上添加了主键,oracle怎么把t2表上的数据删除了,update和insert的时候为什么又提示没有关联到key-preserved table?????

alter table t1 add constraint pk_t1_id  primary key (id);

insert into v_t1t2 values(11,'sms11',20,11,'sms11',20)

ORA-01779: cannot modify a column which maps to a non key-preserved table

update v_t1t2 set t1_name='dba' where t1_id=1

ORA-01779: cannot modify a column which maps to a non key-preserved table

SQL> delete from v_t1t2 ;

1 row deleted

SQL> select * from t1;

ID NAME                                                     AGE

--------------------------------------- -------------------- ---------------------------------------

1 sms1                                                      20

2 sms2                                                      20



推荐阅读
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
author-avatar
x-诗儿_683
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有