2015年7月22日 星期三

用MySQL的Trigger 自動產生會員編號

想要自己編會員編號,不想用mysql 的 auto-increment自動編號功能。
而這個編號,可能會在不同的 AP 開放輸入,所以,最好的產生方式,是放在資料庫裡面自動產生,所以,就動了 Trigger 的念頭。

經過研究,寫了下面這段:


CREATE TRIGGER `get_ext_id` BEFORE INSERT ON `members`
 FOR EACH ROW BEGIN

    DECLARE v_last_id , v_new_id INT;

    SELECT members_last_id INTO v_last_id FROM members_last_id;
    SET v_new_id = v_last_id + 1;
    UPDATE members_last_id SET members_last_id = v_new_id;
    SET NEW.members_ext_id = LPAD(v_new_id,10,'0');

END


members_last_id 是另外建立的一個 table,裡面只有一個欄位,也叫做:members_last_id,而且只有一筆記錄,就是記錄著欲產生的會員編號的最後一號。

就這樣,可以自動從資料庫裡面,每當有新增時,就會自動產生會員編號。

沒有留言:

張貼留言

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。