MySQL - SHOW FUNCTION CODE 语句



MySQL SHOW FUNCTION CODE 语句

函数是一块组织良好的、可重用的代码块,用于执行单个相关的操作。函数为应用程序提供更好的模块化和高度的代码重用。可以使用 CREATE FUNCTION 语句创建存储函数。

SHOW FUNCTION CODE 语句显示指定命名存储函数的内部代码。要执行此语句,我们需要拥有 SHOW ROUTINE 或 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;

输出

以上查询产生以下输出 -

位置 指令
0 set dateOfBirth@0 CURDATE()
1 stmt 5 select DOB into dateOfBirth from emp where Name = emp_name
2 freturn dateOfBirth
广告

© . All rights reserved.