我對PL/SQL非常非常非常新,所以請原諒我對這個問題的無知,但我會感謝您的幫助!PL/SQL之前觸發 - 從其他表繼承列
我有這兩個表,比方說,評分和遊戲。
假設我想從RATINGS表繼承一個值並根據GAMERATING(從RATINGS TABLE繼承它)自動將它插入到GAME表中。
在我們的遊戲桌:(遊戲ID,GAMEPRICE,GAMENAME,GAMERATING,GAMEAGES,兩個publisherId)
而且在參數表我們有:(RATINGID,RATINGCODE,RATINGAGES)
如果我插入將下列值輸入到GAME中:(1,50,'Lost','M')我希望它使用GAMERATING作爲從RATINGS表中讀取的基礎,具體從RATINGCODE中自動插入RATINGS表中的GAMEAGES。
我該怎麼做呢?
我所知道的是我必須聲明變量並根據GAMERATING插入年齡。
編輯:
設法做到這一點的傢伙,
這裏是我使用的格式:
CREATE OR REPLACE TRIGGER [triggername]
BEFORE INSERT ON [表名]
FOR EACH ROW
DECLARE
[變量]
BEGIN
SELECT [列以填充變量] INTO [變量] FROM [第二表]加入[第一表]在[secondtableid] =:新[firsttableid] GROUP BY [列彈出變量] ORDER BY MAX([firsttableid])
:新[firsttablecolumn]:= [變量]
END
希望第是幫助未來的某人
壞主意。有一條基本規則 - 不要在觸發器中實現業務邏輯。這裏有更多的邏輯比應該放入觸發器。觸發器適用於次要的東西 - 從序列中填充主鍵,填充「維護日期」和「添加日期」列,這種事情。爲了做到你在這裏看到的,我建議你寫一個函數來處理將INSERT插入GAME和所有其他邏輯。祝你好運。 –
我知道這是一個壞主意,但它是一個班級,我真的被卡住 – raltandi
我同意鮑勃在這裏,只是爲了清楚。所以你有'GAME(GAMEID,GAMEPRICE,GAMENAME,GAMERATING,GAMEAGES,PUBLISHERID)',你說你插入了'(1,50,'Lost','M')'這個值是哪一列? –