oracle trigger(触发器) 获得插入的那条数据的主键字段名和值,如果是复合主键呢?如何获取?

这是一个可公共用的功能:条件只已知表名,要做的是根据动态的表名取到动态的字段名,然后在触发器中得到这个对应动态的字段的数据new值或是old值。最好不要用拼字符串然后用i... 这是一个可公共用的功能:条件只已知表名,要做的是根据动态的表名取到动态的字段名,然后在触发器中得到这个对应动态的字段的数据new值或是old值。最好不要用拼字符串然后用immedate执行,不知道怎么实现? 展开
 我来答
太平岁年丰9
2013-05-31 · TA获得超过1230个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1085万
展开全部
加个new限定就行了啊,比如:复合主键是(a,b,c), :new.a 、:new.b 、:new.c 就是值。想得到一个表的主键,就到dba_constraints字典里去查,constraint_type='P'就是主键行,constraint_name是主键约束的名字,再到dba_cons_columns字典里,按照约束名查找column_name,如果是复合主键,就有多行,position是顺序

select column_name from dba_cons_columns where (owner,constraint_name)=(select owner,constraint_name from dba_constraints where owner='.....' and table_name='.....' and constraint_type='P')
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式