小编典典

对SP和UDF有帮助吗?

sql

我正在尝试通过MySQL和PHP学习和使用SP(存储过程)和UDF(用户定义函数)。SP和UDF有什么区别,目的是什么?

带有SP的PHP和SQL在MySQL数据库的表中进行更新,编写或获取操作时,简单的代码看起来如何?需要了解并看到使用SP和UDF的要点。

求助!谢谢!


阅读 233

收藏
2021-03-08

共1个答案

小编典典

储存程序

存储过程是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的

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更为复杂,因此只有在您发现存储函数/存储过程不再适合您时(慢/不够强大等),我才会使用它们。

如何从php调用存储过程
实际上只是另一个查询

-- 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' ";

祝你好运。

2021-03-08