2014-10-19 122 views
0

我在我的mysql數據庫中有一個名爲「updategold」的事件,它應該做的是每秒增加一個表值5。但它不起作用。沒有錯誤信息,一切看起來不錯,但它沒有運行。下面是它是如何設置的:簡單的mysql事件沒有運行

  • 事件名稱:Updategold
  • 統計:啓用
  • 事件類型:定期
  • 執行每:1,第二
  • 開始:我將它設置爲一對夫婦空
  • 定義(應該運行該每秒):

    在未來
  • 結束分鐘的
    update stats.gold set stats.gold = stats.gold + 5 
    where stats.id = users.id 
    
  • 定義者:根@本地

任何想法?

編輯

整個過程

DROP EVENT `updategold`; CREATE DEFINER=`root`@`localhost` EVENT `updategold` ON SCHEDULE EVERY 1 SECOND STARTS '2014-10-19 11:37:00.000000' ON COMPLETION NOT PRESERVE ENABLE DO update stats set stats.gold = stats.gold + 5 where stats.id = users.id 
+1

這將有助於獲得實際的代碼。 – 2014-10-19 10:22:48

+0

@ maythesource.com不記得我把什麼放入控制檯,將模擬它,並再次嘗試 – 2014-10-19 10:25:12

回答

0

你的語法在更新統計中是錯誤的。 ,你應該只給table_name

update stats.gold set stats.gold = stats.gold + 5 
    where stats.id = users.id 

應該是:

UPDATE stats SET stats.gold = stats.gold + 5 
    INNER JOIN users 
     ON stats.id = users.id 

,並增加了一個JOIN選擇用戶從用戶表進行更新。

+0

我實際上注意到不久後大聲笑仍然似乎沒有工作,雖然編輯 - 我需要在哪裏 – 2014-10-19 10:32:34

+0

已經更新的問題,因爲你檢查'users.id'你要麼必須加入這兩個表或選擇用戶,或更新統計信息中的所有行如果我正確猜測您的意圖,這聽起來合理 – Kypros 2014-10-19 10:36:13

+0

有道理,INNER JOIN會工作嗎? – 2014-10-19 10:37:22

0

也許這是你的語法。你做到了嗎?

UPDATE table_name 
SET column1=value1,column2=value2,... 
WHERE some_column=some_value; 
+0

我想增加值,在這種情況下,我希望列中的值增加,而不僅僅是設置 – 2014-10-19 10:31:42