27.2.2. CREATE FUNCTION/DROP FUNCTION 語法 |
發布時間: 2012/8/17 17:59:40 |
CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL} SONAME shared_library_name DROP FUNCTION function_name 一個自定義函數 (UDF)就是用一個象ABS() 或 CONCAT()這樣的固有(內建)函數一樣作用的新函數去擴展MySQL。
function_name 是 用在SQL聲明中以備調用的函數名字。RETURNS 子句說明函數返回值的類型。shared_library_name 是共享目標文件的基本名,共享目標文件含有實現函數的代碼。該文件必須位于一個能被你系統的動態連接者搜索的目錄里。 電腦技術www.boydavid.com 你必須有mysql 數據庫的INSERT 權限才能創建一個函數,你必須有mysql 數據庫的DELETE權限才能撤銷一個函數。這是因為CREATE FUNCTION 往記錄函數名字,類型和共享名的mysql.func系統表里添加了一行,而DROP FUNCTION則是從表中刪掉這一行。如果你沒有這個系統表,你應該運行mysql_fix_privilege_tables腳本來創建一個。請參閱2.10.2節,“升級授權表”。
一個有效的函數是一個用CREATE FUNCTION加載且沒有用DROP FUNCTION移除的函數。每次服務器啟動的時候會重新加載所有有效函數,除非你使用--skip-grant-tables參數啟動mysqld。在這種情況下, 將跳過UDF的初始化,UDF不可用。 要了解編寫自定義函數的說明,請參閱27.2.3節,“添加新的自定義函數”。要使得UDF機制能夠起作用,必須使用C或者C++編寫函數,你的系統必須支持動態加載,而且你必須是動態編譯的mysqld(非靜態)。 計算機愛好者www.boydavid.com 一個AGGREGATE函數就像一個MySQL固有的集合(總和)函數一樣起作用,比如,SUM或COUNT()函數。要使得AGGREGATE 起作用,你的mysql.func表必須包括一個type列。如果你的mysql.func表沒有這一 列,你應該運行mysql_fix_privilege_tables腳本來創建此 列。 本文出自:億恩科技【www.endtimedelusion.com】 |