2010-07-14 97 views
0

嗨,我是Oracle SQL的新手,我试图创建一个触发器,该插件依赖于从select查询接收的列。带多值列的Oracle插入

我有一个基本的幻想棒球应用程序,我正在尝试更新一个表格,该表格将玩家与他在一天中玩的团队关联起来。我想要做的基本想法是在batterStat表更改时更新玩家在其中玩的每个球队的日期。例如(所有的静态变量都是:来自batterStat触发器的新值)。

insert into onTeam(date, player, teamName) values ('newDate','Matt Holliday',(select teamName from onTeam where player = 'Matt Holliday')) 

因此,这将是所有的罚款,如果马特霍利迪不超过一支球队打球,所以是有办法让它插入用于从嵌套返回每个值与两个静态变量选择一起去吗?

回答

3

尝试这样:

insert into onTeam(date, player, teamName) 
select 'newDate','Matt Holliday', teamName 
from onTeam where player = 'Matt Holliday' 
0

这将导致“变异触发器”(试图在其定义的同一个表上尝试DML)错误,并且不应该作为触发器实现。它应该在您的首选项层(PL/SQL包或应用程序代码)中作为SQL语句实现。

从您对逻辑的描述中,可能还需要重新设计onTeam表。

+0

我猜我想说的是,触发针对统计数据表来实现。一旦为新的日期/球员插入新的统计数据,则更新包含相关球队的表格。 – Jared 2010-07-14 03:08:31