正確的掌握為 MySQL添加新函數(shù)
來(lái)源:程序員人生 發(fā)布時(shí)間:2013-10-19 16:28:49 閱讀次數(shù):3700次
有兩個(gè)途徑來(lái)為MySQL添加新函數(shù):
你可以通過(guò)自行醫(yī)函數(shù)接口 (UDF)來(lái)添加函數(shù)。自定義函數(shù)被編譯為目標(biāo)文件,然后用CREATE FUNCTION 和DROP FUNCTION 聲明動(dòng)態(tài)地添入到服務(wù)器中及從服務(wù)器中移出。
你可以將函數(shù)添加為MySQL固有(內(nèi)建)函數(shù)。固有函數(shù)被編譯進(jìn)mysqld服務(wù)器中,成為永久可用的。
每種途徑都有其優(yōu)點(diǎn)和缺點(diǎn):
如果你編寫自定義函數(shù),你除了安裝服務(wù)器本身之外還要安裝目標(biāo)文件。如果將你的函數(shù)編譯進(jìn)服務(wù)器中,你就不需要這么做了。
你可以給二進(jìn)制版本的MySQL分發(fā)版添加UDF。固有函數(shù)需要你去修正源碼分發(fā)版。.
如果你升級(jí)你的MySQL分發(fā)版,你可以繼續(xù)使用先前安裝了的UDF, 除非你升級(jí)到一個(gè)UDF接口改變了的新版本。對(duì)固有函數(shù)而言,每次升級(jí)你都必須重復(fù)一次修正。
無(wú)論你使用哪種方法去添加新函數(shù),它們都可以被SQL聲明調(diào)用,就像 ABS() 或 SOUNDEX()這樣的固有函數(shù)一樣。
另一個(gè)添加函數(shù)的方法時(shí)創(chuàng)建存儲(chǔ)函數(shù)。這些函數(shù)時(shí)用SQL聲明編寫的,而不是編譯目標(biāo)代碼。編寫存儲(chǔ)函數(shù)的語(yǔ)法在第20章:存儲(chǔ)程序和函數(shù) 中描述。
下面的小節(jié)描述UDF接口的特性,給出編寫UDF的指令,并討論MySQL為防止UDF被誤用而采取的安全預(yù)防措施。
給出源代碼的例子來(lái)說(shuō)明如何編寫UDF,可以看一看MySQL源碼分發(fā)版中提供的sql/udf_example.cc 文件。
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)