解決phpMyadmin給MySQL數據表創建觸發器遇到的問題

下面由phpMyAdmin教程欄目給大家介紹用phpmyadmin給mysql數據表創建觸發器遇到的問題,希望對需要的朋友有所幫助!

解決phpMyadmin給MySQL數據表創建觸發器遇到的問題

今天給MySQL數據庫的表創建觸發器,想達到的效果是:修改a表的字段received之后,同時要將b表中的registerStatus更新為1,將registerIP改為receive值。

1、首先寫建立觸發器的sql語句:

1)插入時的:

CREATE?TRIGGER?insertref?BEFORE?INSERT?ON?a ?FOR?EACH?ROW?BEGIN? UPDATE?b?SET?registerStatus?=1?WHERE?NEW.id?=?id?and?NEW.received?is?not?null?and?NEW.received?!=''; update?b?set?registerIP=NEW.received?where?NEW.id?=?id; end

2)刪除時:

立即學習PHP免費學習筆記(深入)”;

CREATE?TRIGGER?deleteref?BEFORE?DELETE?ON?a ?FOR?EACH?ROW?begin update?b?set?registerStatus?=0?WHERE?OLD.id?=?id; update??b?set?registerIP=NULL?where?OLD.id?=?id; end

3)更新時:

CREATE?TRIGGER?updateref??BEFORE?UPDATE?ON?a ?FOR?EACH?ROW?BEGIN? update?b?set?registerIP=NEW.received?where?OLD.id=id; end

問題1:

寫完語句執行的時候,報錯,執行不了,原因是用phpMyAdmin執行建立觸發器的時候,要將

解決phpMyadmin給MySQL數據表創建觸發器遇到的問題

輸入sql語句頁面的下方的Delimiter中輸入//。

問題2:在建立好觸發器之后,在做測試的時候,在a表中無法插入數據,報錯:

1558?-?Column?count?of?mysql.proc?is?wrong.?Expected?20,?found?16.?Created?with?MySQL?50018,?now?running?50146.?Please?use?mysql_upgrade?to?fix?this?error.

網上有很多帖子說是因為,之前升級過數據庫,但是數據結構沒有升級造成的。

解決辦法:執行 sudo mysql_upgrade -u root -p 提示輸入密碼,輸入密碼之后,重啟數據庫。則可以插入數據了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享