有兩個途徑來為MySQL添加新函數(shù):
你可以通過自行醫(yī)函數(shù)接口 (UDF)來添加函數(shù),
如何為MySQL添加新函數(shù)
。自定義函數(shù)被編譯為目標文件,然后用CREATE FUNCTION 和DROP FUNCTION 聲明動態(tài)地添入到服務器中及從服務器中移出。你可以將函數(shù)添加為MySQL固有(內建)函數(shù)。固有函數(shù)被編譯進mysqld服務器中,成為永久可用的。
每種途徑都有其優(yōu)點和缺點:
如果你編寫自定義函數(shù),你除了安裝服務器本身之外還要安裝目標文件,
電腦資料
《如何為MySQL添加新函數(shù)》(http://www.ishadingyu.com)。如果將你的函數(shù)編譯進服務器中,你就不需要這么做了。你可以給二進制版本的MySQL分發(fā)版添加UDF。固有函數(shù)需要你去修正源碼分發(fā)版。
如果你升級你的MySQL分發(fā)版,你可以繼續(xù)使用先前安裝了的UDF, 除非你升級到一個UDF接口改變了的新版本。對固有函數(shù)而言,每次升級你都必須重復一次修正。
無論你使用哪種方法去添加新函數(shù),它們都可以被SQL聲明調用,就像 ABS() 或 SOUNDEX()這樣的固有函數(shù)一樣。
另一個添加函數(shù)的方法時創(chuàng)建存儲函數(shù)。這些函數(shù)時用SQL聲明編寫的,而不是編譯目標代碼。