我想創建一個使用MAMP爲一個joomla2.5應用程序的MySQL觸發器。 我的觸發器:MYSQL觸發器返回空錯誤
CREATE TRIGGER `getDivision` BEFORE INSERT ON `encex_autoschedGames`
FOR EACH ROW BEGIN
select division into @div_a from encex_autoschedTeams where team_name = new.team_a;
set new.division = @div_a;
END
我不斷收到以下錯誤:
Column 'division' cannot be null
故事:
我有兩個表:1)遊戲2)團隊。 隊有列 'TEAM_NAME' 和 '師' 奧運會上,有coloumns 'team_a', 'team_b' 和 '師'
示例表:
Teams table:
Team_name, Division
"team1","A"
"Team2","A"
"Team3","A"
"Team4","A"
"Team5","B"
"Team6","B"
"Team7","B"
"Team8","B"
對於遊戲的表,我想師來自於團隊表。所以當我插入TEAM1對TEAM2它自動填充師爲A.
Games Table:
Team_a, Team_b, Division
"Team1", "Team2", "A"
我想創建一個觸發器,這樣,當在遊戲表創建一個排它從'Te'填入分區欄ams'表,其中team_name = team_a。
理想情況下,我會構建它,以確保team_a和team_b的分配相同,但是我認爲小步驟最適合這裏。
經過一番調試,我相信我的錯誤在: 從encex_autoschedTeams中選擇劃分爲@div_a,其中team_name = new.team_a;
由於某種原因,where子句返回null。經過一些命令行測試後,它不應該是。也許New.team_a不正確?
謝謝你的迴應。你能解釋一個簡單的存儲過程是什麼意思嗎?我是MYSQL的新手。此外,我確實將分區coloum設置爲NOT NULL,但我不明白爲什麼無法獲取分區列的值。我使用where子句錯了嗎? – Jglstewart
我試着更新「set new.division = @div_a;」以「更新gamestable設置分區= @ div_a」。我得到了完全相同的錯誤。我誤解了嗎? – Jglstewart
讓它在插入之後而不是在插入之前 – Chella