淺談MySQL中的觸發(fā)器
在很多時(shí)候,干得利索不如想的明白。方案應(yīng)該根據(jù)場(chǎng)景來(lái)設(shè)計(jì),不是盲目的依靠經(jīng)驗(yàn),當(dāng)然這也算新經(jīng)驗(yàn)!
需求是把公司的幾套公共系統(tǒng)做成通過(guò)郵箱用戶名和密碼認(rèn)證,只需記住一對(duì)用戶名密碼,簡(jiǎn)單為上,只允許用戶在ExtMail的web頁(yè)面修改密碼!在做論壇認(rèn)證的時(shí)候,由于論壇的復(fù)雜性,想到了如下的幾個(gè)方案:
通過(guò)OAuth2.0做認(rèn)證,或者自己寫(xiě)接口,問(wèn)題是只聽(tīng)過(guò),沒(méi)玩過(guò)!
在郵箱修改時(shí),也提交到論壇的數(shù)據(jù)庫(kù)??上Р粫?huì)ExtMail的Perl代碼,且修改代碼工作量太大!
先前已經(jīng)把線上郵箱用戶表同步到內(nèi)網(wǎng),可以做數(shù)據(jù)庫(kù)復(fù)制,可論壇和郵箱的數(shù)據(jù)庫(kù)字段有較大出入,還是要改大量代碼!
使用觸發(fā)器更新論壇數(shù)據(jù)庫(kù)的用戶表!
在仔細(xì)考慮過(guò)前面三種辦法之后,在能力范圍內(nèi),已經(jīng)把PHP編寫(xiě)的論壇認(rèn)證方式修改成適應(yīng)郵箱的加鹽認(rèn)證方式,并測(cè)試了導(dǎo)入郵箱用戶名和密碼認(rèn)證。已經(jīng)修改過(guò)論壇數(shù)據(jù)庫(kù)字段類型,部分后端代碼!最后一步是自動(dòng)把郵箱數(shù)據(jù)庫(kù)的用戶表變更同步到論壇數(shù)據(jù)庫(kù)的用戶表。
在討論數(shù)據(jù)庫(kù)復(fù)制時(shí),發(fā)現(xiàn)還是最后一種觸發(fā)器的辦法可行性最好,通過(guò)對(duì)論壇用戶表的大多數(shù)字段設(shè)置默認(rèn)值,做到只添加修改其中的賬號(hào),密碼和郵件三個(gè)字段即可完成對(duì)論壇用戶的操作,下面是根據(jù)實(shí)際情況編寫(xiě)的MySQL觸發(fā)器!
觸發(fā)器添加用戶
use extmail; DELIMITER // create trigger add_bbsuser after insert on extmail.mailbox for each row begin insert into xiuno_bbs.bbs_user(username,password,email) \ values (new.name,new.password,new.username); end // DELIMITER ;
觸發(fā)器更新用戶
use extmail; DELIMITER // create trigger update_bbsuser after update on extmail.mailbox for each row begin update xiuno_bbs.bbs_user set username=new.name,\ password=new.password where email=new.username; end // DELIMITER ;
觸發(fā)器刪除用戶
use extmail; DELIMITER // create trigger delete_bbsuser after delete on extmail.mailbox for each row begin delete from xiuno_bbs.bbs_user where email=old.username; end // DELIMITER ;
我踩過(guò)的坑
剛開(kāi)始編寫(xiě)觸發(fā)器,從網(wǎng)上找來(lái)的命令都不能用,完全一籌莫展之際領(lǐng)悟到,觸發(fā)器和數(shù)據(jù)庫(kù)是綁定的,必須先use extmail到要觸發(fā)的extmail數(shù)據(jù)庫(kù)中,才能對(duì)這個(gè)庫(kù)的操作做相應(yīng)的觸發(fā),后來(lái)就沒(méi)有問(wèn)題了!我果然是MySQL小白!
相關(guān)文章
Python統(tǒng)計(jì)字符內(nèi)容的占比的實(shí)現(xiàn)
本文介紹了如何使用Python統(tǒng)計(jì)字符占比,包括字符串中字母、數(shù)字、空格等字符的占比,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Django框架中render_to_response()函數(shù)的使用方法
這篇文章主要介紹了Django框架中render_to_response()函數(shù)的使用方法,注意范例中該方法的參數(shù)的使用,需要的朋友可以參考下2015-07-07
keras 使用Lambda 快速新建層 添加多個(gè)參數(shù)操作
這篇文章主要介紹了keras 使用Lambda 快速新建層 添加多個(gè)參數(shù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python基于matplotlib繪制棧式直方圖的方法示例
這篇文章主要介紹了Python基于matplotlib繪制棧式直方圖的方法,涉及Python使用matplotlib進(jìn)行圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
python字符串,元組,列表,字典互轉(zhuǎn)代碼實(shí)例詳解
這篇文章主要介紹了python字符串,元組,列表,字典互轉(zhuǎn)代碼實(shí)例詳解,需要的朋友可以參考下2020-02-02
python語(yǔ)言元素知識(shí)點(diǎn)詳解
在本篇文章中小編給大家分享了關(guān)于python語(yǔ)言元素的相關(guān)知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們跟著學(xué)習(xí)下。2019-05-05
python編寫(xiě)網(wǎng)頁(yè)爬蟲(chóng)腳本并實(shí)現(xiàn)APScheduler調(diào)度
爬蟲(chóng)爬的頁(yè)面是京東的電子書(shū)網(wǎng)站頁(yè)面,每天會(huì)更新一些免費(fèi)的電子書(shū),爬蟲(chóng)會(huì)把每天更新的免費(fèi)的書(shū)名以第一時(shí)間通過(guò)郵件發(fā)給我,通知我去下載2014-07-07

