MySql中delimiter的作用是什么
生活随笔
收集整理的這篇文章主要介紹了
MySql中delimiter的作用是什么
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MySql中delimiter的作用是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
MYSQL導出一個SQL后:
DELIMITER$$DROPTRIGGERIFEXISTS`updateegopriceondelete`$$CREATETRIGGER`updateegopriceondelete`AFTERDELETEON`customerinfo`FOREACHROWBEGINDELETEFROMegopriceWHEREcustomerId=OLD.customerId;END$$DELIMITER;
其中DELIMITER 定好結束符為"$$", 然后最后又定義為";", MYSQL的默認結束符為";".
詳細解釋:
其實就是告訴解釋器,該段命令是否已經結束了,mysql是否可以執行了。
默認情況下,delimiter是分號;。在命令行客戶端中,如果有一行命令以分號結束,
那么回車后,mysql將會執行該命令。如輸入下面的語句
mysql> select * from test_table;
然后回車,那么MySQL將立即執行該語句。
但有時候,不希望MySQL這么做。在為可能輸入較多的語句,且語句中包含有分號。
如試圖在命令行客戶端中輸入如下語句
mysql>CREATEFUNCTION`SHORTEN`(SVARCHAR(255),NINT)mysql>RETURNSvarchar(255)mysql>BEGINmysql>IFISNULL(S)THENmysql>RETURN;mysql>ELSEIFN<15THENmysql>RETURNLEFT(S,N);mysql>ELSEmysql>IFCHAR_LENGTH(S)<=NTHENmysql>RETURNS;mysql>ELSEmysql>RETURNCONCAT(LEFT(S,N-10),...,RIGHT(S,5));mysql>ENDIF;mysql>ENDIF;mysql>END;
默認情況下,不可能等到用戶把這些語句全部輸入完之后,再執行整段語句。
因為mysql一遇到分號,它就要自動執行。
即,在語句RETURN ;時,mysql解釋器就要執行了。
這種情況下,就需要事先把delimiter換成其它符號,如//或$$。
mysql>delimiter//mysql>CREATEFUNCTION`SHORTEN`(SVARCHAR(255),NINT)mysql>RETURNSvarchar(255)mysql>BEGINmysql>IFISNULL(S)THENmysql>RETURN;mysql>ELSEIFN<15THENmysql>RETURNLEFT(S,N);mysql>ELSEmysql>IFCHAR_LENGTH(S)<=NTHENmysql>RETURNS;mysql>ELSEmysql>RETURNCONCAT(LEFT(S,N-10),...,RIGHT(S,5));mysql>ENDIF;mysql>ENDIF;mysql>END;//
這樣只有當//出現之后,mysql解釋器才會執行這段語句
總結
以上是生活随笔為你收集整理的MySql中delimiter的作用是什么的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 想建一个带分隔条的label 控件;
- 下一篇: Windows2003不认3G以上内存时