【问题标题】:Show procedure/function code in MySql在 MySql 中显示过程/功能代码
【发布时间】:2012-08-19 18:01:56
【问题描述】:

是否有任何选项可以查看 MySql 中的存储过程/函数代码,就像 sql 中的“sp_helptext 过程名称”一样?

【问题讨论】:

标签: mysql function schema show procedure


【解决方案1】:

您可以通过INFORMATION_SCHEMA.ROUTINES table获取信息

【讨论】:

    【解决方案2】:

    尝试“SHOW CREATE PROCEDURE 过程名称”

    【讨论】:

    • 1. SHOW 与 CREATE 通常可用,(仅 SHOW 仅在调试模式下可用)...... ........ 2.显示了函数/过程的整个 CREATE 代码
    • 还要注意当然你可以用function切换procedure关键字来获取函数create code:::::SHOW CREATE FUNCTION function_name
    【解决方案3】:

    是的,

    SELECT ROUTINE_DEFINITION FROM information_schema.ROUTINES WHERE SPECIFIC_NAME='procedurename'
    

    【讨论】:

    • 显示了函数/过程包含什么 - 要执行什么,而不是整个“创建函数/过程”代码。
    【解决方案4】:

    我一直在尝试,我认为以下两种方法中的一种效果最好。

    要列出所有内容(parameterscollating 等),请使用它。

     SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA in (SELECT DATABASE()) AND ROUTINE_NAME='ProcedureName';
    

    要仅列出代码,请使用此代码。

    SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA in (SELECT DATABASE()) AND ROUTINE_NAME='ProcedureName';
    

    在上述两种情况下,都需要嵌套选择来将结果限制为当前数据库,因为INFORMATION_SCHEMA,作为系统数据库,包含实例中安装的每个数据库的详细信息。

    【讨论】:

      【解决方案5】:

      转到 mySQL 工作台

      • 右键单击程序,然后选择ALTER。 (这将为您打开程序的定义(是最简单的方法)。

      • 也可以使用命令,SHOW CREATE PROCEDURE proc_name;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-17
        • 1970-01-01
        • 1970-01-01
        • 2022-11-30
        相关资源
        最近更新 更多