MySQL - SHOW FUNCTION CODE 语句
MySQL SHOW FUNCTION CODE 语句
函数是一段有组织的、可重用的代码块,用于执行单个相关操作。函数为您的应用程序提供了更好的模块化和高度的代码重用。您可以使用 CREATE FUNCTION 语句创建存储函数。
SHOW FUNCTION CODE 语句显示指定名称存储函数的内部代码。要执行此语句,我们需要拥有 SHOW ROUTENE 或 SELECT(全局)权限。
此语句以结果集的形式返回代码,其中的每一行代表函数中的一条指令。
此语句仅适用于调试服务器。要执行此语句,请确保您已使用"--with-debug"选项构建 MySQL,否则将生成以下错误 −
ERROR 1289 (HY000): The 'SHOW PROCEDURE|FUNCTION CODE' feature is disabled; you need MySQL built with '--with-debug' to have it working
语法
以下是 SHOW FUNCTION CODE 语句的语法 -
SHOW FUNCTION CODE func_name;
其中,func_name 是您需要代码的函数名称。
示例
假设我们使用 CREATE 语句在数据库中创建了一个名为 Emp 的表,如下所示 -
CREATE TABLE Emp( Name VARCHAR(255), DOB DATE, Location VARCHAR(255) );
现在,让我们在 Emp 表中插入一些记录 -
INSERT INTO Emp VALUES ('Amit', DATE('1970-01-08'), 'Hyderabad'), ('Sumith', DATE('1990-11-02'), 'Vishakhapatnam'), ('Sudha', DATE('1980-11-06'), 'Vijayawada');
并且,如果我们创建了一个 getDob() 函数,它接受员工的姓名,检索并返回 DOB 列的值。
DELIMITER // CREATE FUNCTION getDob(emp_name VARCHAR(50)) RETURNS DATE DETERMINISTIC BEGIN declare dateOfBirth DATE DEFAULT CURDATE(); select DOB into dateOfBirth from emp where Name = emp_name; return dateOfBirth; END// DELIMITER ;
以下查询将上述创建过程的代码作为结果集返回 -
SHOW PROCEDURE CODE test;
输出
上述查询产生以下输出 -
Pos | Instruction |
---|---|
0 | set dateOfBirth@0 CURDATE() |
1 | stmt 5 select DOB into dateOfBirth from emp where Name = emp_name |
2 | freturn dateOfBirth |