2014-11-21 49 views
0

我在表A上使用了一些觸發器,用這些計算值填充表B。 由於碰撞表A在這裏和那裏填充了錯誤的值,所以放在表B中的計算結果在這裏和那裏都是不正確的。mysql觸發器,讓我的觸發器在糾正錯誤後重新計算整個表格

我如何去通過所有行(在一定範圍內),並讓觸發重新計算值,並在表B.

表A中覆蓋它們有ELEC表和煤氣表,每5分鐘的值。 約有700個條目錯誤。

任何建議將aprechiated,感謝

+0

將值更新爲正確的值並且觸發器應該自動工作。這就是觸發器的工作原理。 – 2014-11-21 13:18:46

+0

是的 - 是要建議更新yourtable設置pk = pk來觸發觸發器。但我猜測它是插入觸發器,邏輯可能是錯誤的。你應該發佈你的觸發代碼。 – Randy 2014-11-21 13:20:33

+0

我刪除了具有錯誤值的行。並希望使用觸發器重建表格。所以「重建」的價值觀過去了。 – Henry 2014-11-21 15:01:34

回答

0

觸發內容,並表後發起的更新:

BEGIN SELECT MAX(ElectraHighP1 + ElectraLowP1) - 分鐘(ElectraHighP1 + ElectraLowP1)FROM data_rr其中date (FROM_UNIXTIME(timestamp))= curdate()INTO @ var1; SELECT max(SolarHighP1 + SolarLowP1) - min(SolarHighP1 + SolarLowP1)FROM data_rr WHERE DATE(FROM_UNIXTIME(timestamp))= curdate()INTO @ var2; SELECT max(GasConsumedTotalP1) - min(GasConsumedTotalP1)FROM data_rr WHERE DATE(FROM_UNIXTIME(timestamp))= curdate()INTO @ var3; INSERT INTO DayDataElectraUsedTodaySolarDeliveryTodayGasConsumedToday)VALUES(@ var1,@ var2,@ var3); END

計算能量表的日期值。