触发前的PL / SQL - 从其他表继承列

时间:2016-05-25 00:11:23

标签: sql oracle plsql

我对PL / SQL非常非常新,请原谅我对这个问题的无知,但我感谢你的帮助!

我有这两张桌子,让我们说,评分和游戏。

假设我想从RATINGS表继承一个值并自动将其插入到GAME表中,具体取决于我给它的GAMERATING(从RATINGS TABLE继承)。

在GAME表上我们有:( GAMEID,GAMEPRICE,GAMENAME,GAMERATING,GAMEAGES,PUBLISHERID)

在RATINGS表上我们有:( RATINGID,RATINGCODE,RATINGAGES)

如果我在GAME中插入以下值:(1,50,' Lost',' M')我希望它使用GAMERATING从RATINGS表中自动插入GAMEAGES作为阅读RATINGS表的基础,特别是RATINGCODE。

我将如何做到这一点?

我所知道的是我必须声明变量并根据游戏情况将年龄插入其中。

编辑:

管理这些人,

这是我使用的格式:

创建或替换TRIGGER [triggername]

在INSERT ON [tablename]

之前

FOR EACH ROW

DECLARE

[变量]

BEGIN

SELECT [填充变量的列] INTO [variables] FROM [第二个表] JOIN [第一个表] ON [secondtableid] =:新。[firsttableid] GROUP BY [弹出变量的列] ORDER BY MAX([firsttableid] )

:新。[firsttablecolumn]:= [变量]

END

希望这可以帮助将来的某个人

1 个答案:

答案 0 :(得分:1)

CREATE OR REPLACE TRIGGER [triggername]
BEFORE INSERT ON [tablename]
FOR EACH ROW
DECLARE
[variables]
BEGIN
SELECT [columns to populate variables] INTO [variables] FROM [second table] JOIN [first table] ON [secondtableid] = :New.[firsttableid] GROUP BY [columns to pop variables] ORDER BY MAX([firsttableid])
:New.[firsttablecolumn] := [variables]
END