27.2.2. CREATE FUNCTION/DROP FUNCTION 語法 |
發(fā)布時(shí)間: 2012/8/17 17:59:40 |
CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL} SONAME shared_library_name DROP FUNCTION function_name 一個(gè)自定義函數(shù) (UDF)就是用一個(gè)象ABS() 或 CONCAT()這樣的固有(內(nèi)建)函數(shù)一樣作用的新函數(shù)去擴(kuò)展MySQL。
function_name 是 用在SQL聲明中以備調(diào)用的函數(shù)名字。RETURNS 子句說明函數(shù)返回值的類型。shared_library_name 是共享目標(biāo)文件的基本名,共享目標(biāo)文件含有實(shí)現(xiàn)函數(shù)的代碼。該文件必須位于一個(gè)能被你系統(tǒng)的動態(tài)連接者搜索的目錄里。 電腦技術(shù)www.boydavid.com 你必須有mysql 數(shù)據(jù)庫的INSERT 權(quán)限才能創(chuàng)建一個(gè)函數(shù),你必須有mysql 數(shù)據(jù)庫的DELETE權(quán)限才能撤銷一個(gè)函數(shù)。這是因?yàn)镃REATE FUNCTION 往記錄函數(shù)名字,類型和共享名的mysql.func系統(tǒng)表里添加了一行,而DROP FUNCTION則是從表中刪掉這一行。如果你沒有這個(gè)系統(tǒng)表,你應(yīng)該運(yùn)行mysql_fix_privilege_tables腳本來創(chuàng)建一個(gè)。請參閱2.10.2節(jié),“升級授權(quán)表”。
一個(gè)有效的函數(shù)是一個(gè)用CREATE FUNCTION加載且沒有用DROP FUNCTION移除的函數(shù)。每次服務(wù)器啟動的時(shí)候會重新加載所有有效函數(shù),除非你使用--skip-grant-tables參數(shù)啟動mysqld。在這種情況下, 將跳過UDF的初始化,UDF不可用。 要了解編寫自定義函數(shù)的說明,請參閱27.2.3節(jié),“添加新的自定義函數(shù)”。要使得UDF機(jī)制能夠起作用,必須使用C或者C++編寫函數(shù),你的系統(tǒng)必須支持動態(tài)加載,而且你必須是動態(tài)編譯的mysqld(非靜態(tài))。 計(jì)算機(jī)愛好者www.boydavid.com 一個(gè)AGGREGATE函數(shù)就像一個(gè)MySQL固有的集合(總和)函數(shù)一樣起作用,比如,SUM或COUNT()函數(shù)。要使得AGGREGATE 起作用,你的mysql.func表必須包括一個(gè)type列。如果你的mysql.func表沒有這一 列,你應(yīng)該運(yùn)行mysql_fix_privilege_tables腳本來創(chuàng)建此 列。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |