Spec-Zone .ru
спецификации, руководства, описания, API

13.7.5.28. SHOW PROCEDURE CODE Синтаксис

SHOW PROCEDURE CODE proc_name

Этот оператор является расширением MySQL, которое доступно только для серверов, которые были созданы с отладкой поддержки. Это выводит на экран представление внутренней реализации именованной хранимой процедуры. Подобный оператор, SHOW FUNCTION CODE, информация о дисплеях о сохраненных функциях (см. Раздел 13.7.5.20,"SHOW FUNCTION CODE Синтаксис").

Оба оператора требуют, чтобы Вы были владельцем подпрограммы или имели SELECT доступ к mysql.proc таблица.

Если именованная подпрограмма доступна, каждый оператор производит набор результатов. Каждая строка в наборе результатов соответствует одной "инструкции" в подпрограмме. Первый столбец Pos, который является порядковым числом, начинающимся 0. Второй столбец Instruction, который содержит SQL-оператор (обычно измененный от первоисточника), или направляющее, у которого есть значение только к обработчику сохраненной подпрограммы.

mysql> DELIMITER //mysql> CREATE PROCEDURE p1 ()    -> BEGIN    ->   DECLARE fanta INT DEFAULT 55;    ->   DROP TABLE t2;    ->   LOOP    ->     INSERT INTO t3
        VALUES (fanta);    ->     END LOOP;    ->   END//Query OK, 0 rows affected (0.00 sec)mysql> SHOW PROCEDURE CODE p1//+-----+----------------------------------------+| Pos | Instruction                            |+-----+----------------------------------------+|   0 | set fanta@0 55                         ||   1 | stmt 9 "DROP TABLE t2"                 ||   2 | stmt 5 "INSERT INTO t3 VALUES (fanta)" ||   3 | jump 2                                 |+-----+----------------------------------------+4 rows in set (0.00 sec)

В этом примере, неисполнимой программе BEGIN и END операторы исчезли, и для DECLARE variable_name оператор, только исполнимая часть появляется (часть, где значение по умолчанию присваивается). Для каждого оператора, который берется из источника, есть кодовая комбинация stmt сопровождаемый типом (9 средств DROP, 5 средств INSERT, и так далее). Заключительная строка содержит инструкцию jump 2, значение GOTO instruction #2.