我想在更新另一個表時更改表中所有行的字段。
我有一張遊戲桌,一張裁判表(帶有nation_id)和國家名單。
現在我想自動更新遊戲表中的referee_nation_Name,如果有人更新裁判表中的nation_id。
我的問題是我不知道如何獲取referee_id(這是唯一的),當有人更新此表中的nation_id。如果我選擇所有referee_id它們是這樣的:我new.nation_id會得到人民的其他裁判IDS誰生活在這個國家......這裏是我的非工作觸發:ORACLE TRIGGER更新表,如果另一個更新
CREATE OR REPLACE TRIGGER name
AFTER UPDATE OF nation_id ON referee
FOR EACH ROW
DECLARE
nationname VARCHAR2(150);
BEGIN
SELECT n.name INTO nationname
FROM nation n, referee r, game g
WHERE n.nation_id = r.nation_id AND g.referee_id = :old.referee_id);
UPDATE game SET referee_nation_Name = nationname WHERE referee_id = :old.referee_id;
END;
爲什麼你首先在「裁判」表中存儲國家的名字?你的數據模型應該正確的標準化。所以如果你已經有了一個已經存儲的「國家」表,那麼你不應該存儲裁判國的名字。 – 2013-05-02 21:51:38
我知道,但它是爲了學校。所以我必須這樣做...... ^^ – user1069968 2013-05-02 21:54:26
你在你的select語句中缺少連接條件(如果你使用明確的'JOIN'則不會發生) – 2013-05-02 22:12:03