关于oracle触发器问题请教
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于oracle触发器问题请教相关的知识,希望对你有一定的参考价值。
问题:需要将Adt_Log表的log_date_time字段最大值修改到pat_visit1表中的MOVE_DATE4 字段;
备注:1.pat_visit1表 和 Adt_Log表 都有 PATIENT_ID 和 visit_id 字段,可以做关联;
2.Adt_Log 表的 log_date_time 时间字段,当存在多条数据时,需要取最大值;
以下为本人(新人)写的触发器,感觉用不了,求大神们指点,语法哪里不对
create or replace trigger 修改adt字段 after update of log_date_time on Adt_Log
for each row
begin
update pat_visit1 a
set MOVE_DATE4 = (select max(log_date_time) from Adt_Log b where b.PATIENT_ID = a.PATIENT_ID and b.visit_id = a.visit_id);
end;
SQL问题,请教高手
已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行.
这个是我碰到的错误信息,导致的结果是行无法删除,请问该如何解决
delete 从表 where 外键列 = '主键值'
然后删除主表行
delect 主表 where 主键列 = '主键值' 参考技术A /*********
。进查询分析器,按 F4。
选择好库名,选择全部,在下面把其他勾去掉,点上触发器。
开始查找。
看下,你delete的那张表上 是不是有触发器。
如果有,你看下那个触发器就明白了。触发器的头应该如下:
*************/
create trigger xxx on tablename
for deleted,inserted,update
as
begin
--语句没写完。你看下我的猜测对不?
参考资料:如果问题解决、请厚道点给我分分哟!!
参考技术B 这样就行了:select distinct * into #tmp from tablename
delete #tmp
insert into tablename select * from #tmp 参考技术C 数据有重复的吧 多加个条件判断 比如加个 ID= 每行的ID让他自加 就不会重复 参考技术D 应该是有外键关联
这个表和其他表有关联,你删除这行会导致其他表的数据发生错误,
你可以看一下这张表的外键连接了那几张表,要删除就所有数据都删除 第5个回答 2008-04-05 因该在表关系中找原因,数据可能与其它表中数据有关联,导致数据不能删除
以上是关于关于oracle触发器问题请教的主要内容,如果未能解决你的问题,请参考以下文章