2011-06-20 11 views
0

'class_total'、 'class_attended'および 'attendance_percent'の3つのフィールドを持つ 'attendance'テーブルがあります。 フィールド 'class_total'と 'class_attended'に値が(class_attended/class_total)* 100で挿入/更新されるたびに 'attendance_percent'の値を挿入/更新したいとします。このため 私はトリガを使用しています:2つの異なるフィールドの値に基づいてテーブルにパーセント値を挿入するためのトリガー

CREATE TRIGGER percent_update 
BEFORE INSERT ON attendance 
FOR EACH ROW 
SET NEW.attendance_percent =(attendance.class_attended/attendance.class_total)*100 ; 

しかし、その作業はありません。

+0

attendance_percentが別のフィールドから計算されている場合は、SELECT文でその場でこの値を計算することができます。 – Devart

+0

「働いていない」ことについて詳しく説明できますか?エラーやデータの挿入、間違ったデータの挿入などがありますか?例助け:) – MatBailie

+0

トリガークエリはok.Butですが、その後、テーブルに値を挿入しようとしました。 INSERT INTO出席者(class_total、class_attended) VALUES(5,4); Mysqlはエラー1109(42S02):フィールドリストに '出席'テーブルが不明です。 トリガのattendance_updateを削除すると、挿入クエリが正常に動作しています。 – Akarsh

答えて

0

は、テーブル名の代わりにNEW句を使用してください -

... 
SET NEW.attendance_percent = (NEW.class_attended/NEW.class_total) 
... 
+0

ありがとうございます。今はうまくいきます。 :) – Akarsh

関連する問題