2017-04-18 129 views
0

我想要做的是向每個第3,第6,第9和第12(不多於)用戶添加一些信用(用戶信用的10%)到用戶帳戶在此用戶的邀請鏈接下添加到數據庫中(但邀請鏈接在此不是必需的 - 每個用戶都有帶邀請者ID的索引列)。MySQL觸發器 - 在表格1中插入更新表格

因此,像這樣(對不起,「僞」,我從來沒有使用觸發,可能不會致使有任何不久,所以我不知道如何把它寫正確):

UPDATE accounts.credit = accounts.credit + (accounts.credit/10) 
ON INSERT INTO users (AND when inserted row % 3 == 0 to some user) 
WHERE k_user = this 

或者有沒有更簡單的方法如何做到這一點?我可以處理PHP,但我想,如果用戶訪問該站點的腳本只能執行...

回答

1

考慮使用觸發器https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

delimiter $$ 
CREATE TRIGGER upd_check AFTER INSERT ON users 
     FOR EACH ROW 
     BEGIN 
      IF NEW.id % 3 = 0 THEN 
       UPDATE accounts SET credit = credit + (credit/10) where k_user = NEW.id 
      END IF; 
     END;$$ 
delimiter ; 
+0

謝謝你的回答!最後,我意識到我不需要在數據庫級別做這件事,並通過PHP解決它。只是在處理用戶註冊的函數末尾添加了一些sql查詢。但是你的回答讓我對觸發器有了一些瞭解......這可能很方便。 –

相關問題