2012-06-25 69 views
0

我正在嘗試創建一個將調用php腳本的MySQL觸發器。我有一個運行在RDS中的MySQL服務器實例,並希望使用php腳本向我的SQS消息傳遞系統發送消息。RDS上的MySQL觸發器

  1. 我該在哪裏保存php腳本?
  2. 我是否需要在EC2實例上安裝SQS的PHP SDK?

回答

0

忘掉觸發器,特別是在Amazon RDS上。

使用cron每隔5分鐘執行一次PHP腳本(例如),查找未發送的消息並使用SQS消息系統發送它們。

+0

建議不要使用觸發器的任何理由?這有沒有一個已知的問題? – user1481054

+0

我認爲應儘可能避免觸發器。沉重地使用它們使調試在屁股疼痛,因爲它們隨機順序執行,當你想知道爲什麼變化的數據看起來不像預期的時候,你經常不會想到它。 – CodeZombie

+0

不幸的是,它們是CHECK約束條件下MySQL的唯一替代品,這是一個真正的恥辱 –

1

是的,你可以正常使用觸發器。 使用此步驟:在 「參數組」 菜單

  1. 改變變量:

    log_bin_trust_function_creators to "ON" or "1". 
    
  2. 做一個 「修改」 和 「重啓」 的實例。強制性!

  3. 用mysql客戶端驗證變量是否真的被修改過。命令是:SHOW VARIABLES LIKE 'log_bin_trust%'

現在,您可以正常創建觸發器。最大的困難是正確地檢查問題:您的實例應該使用該參數組,並且應該正確設置