存储过程是MysqL编写并由MysqL执行的MysqL代码。
CREATE FUNCTION AreWeThereYet(Location integer) RETURNS boolean
BEGIN
Return 0;
END
CREATE PROCEDURE InsertRow(A integer)
BEGIN
INSERT INTO table1 VALUES(A);
END
UDF是C(++)或类似的代码,它们被编译为.so (linux) 或.dll (windows)
您要使用以下命令将其插入MysqL:
CREATE FUNCTION Metaphon RETURNS STRING SONAME 'udf_example.so'; //linux
CREATE FUNCTION Metaphon RETURNS STRING SONAME 'udf_example.dll'; //windows
UDF很复杂,存储过程很简单。 您可以在SO中找到许多有关存储过程的示例, 因为UDF更为复杂,因此只有在您发现存储函数/存储过程不再适合您时(慢/不够强大等),我才会使用它们。
-- normal select
$query = "SELECT * FROM table1";
-- call to stored proc
$query = "CALL InserTarow('1')";
-- use a stored function
$query = "SELECT AreWeThereYet('10')";
-- or
$query = "SELECT * FROM table1 WHERE AreWeThereYet(field1) = '1' ";
祝你好运。