2010-07-14 2 views
0

Hey, je suis nouveau à Oracle SQL et j'essaye de faire un déclencheur qui a une insertion dépendante des colonnes reçues d'une requête choisie. J'ai une application de baseball fantastique de base et j'essaye de mettre à jour une table qui corrèle le joueur à l'équipe qu'il a jouée pendant une seule journée. L'idée de base que je veux faire est de mettre à jour la date pour chaque équipe où le joueur a joué quand la table de batterStat est changée. Donc par exemple (toutes les variables statiques sont simplement: nouvelles valeurs du trigger sur batterStat).Oracle Insert avec colonne mutli-valuée

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

Donc, ce serait parfait si Matt Holliday n'a pas joué pendant plus d'une équipe, donc est-il un moyen de le faire insérer pour chaque valeur renvoyée de cette imbriquée sélectionner avec les deux variables statiques?

Répondre

3

Essayez quelque chose comme ceci:

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

Cela entraînera une erreur "déclencheur mutant" (tentative de DML sur la même table que celle sur laquelle il est défini) et ne doit pas être implémenté comme déclencheur. Il doit être implémenté en tant qu'instruction SQL dans la couche de votre choix (package PL/SQL ou code d'application). De votre description de la logique, il se peut que vous ayez également besoin d'une nouvelle conception de la table onTeam.

+0

Ce que je voulais dire est que le déclencheur est mis en œuvre sur un tableau de statistiques. Une fois que de nouvelles statistiques sont insérées pour une nouvelle date/joueur, la table avec les équipes associées est mise à jour. – Jared

Questions connexes