2017-12-15 21 views
0

나는 내가 프로 시저SHOW 프로 시저 내용을 표시되지 절차의 PROCEDURE_NAME을 만들

mysql> SHOW PROCEDURE STATUS; 
+-----+---------------------------------+-----------+-----------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ 
| Db | Name       | Type  | Definer | Modified   | Created    | Security_type | Comment | character_set_client | collation_connection | Database Collation | 
+-----+---------------------------------+-----------+-----------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ 
| vmp | ccontrol_table | PROCEDURE | [email protected]% | 2015-11-10 01:01:51 | 2015-11-10 01:01:51 | DEFINER  |   | utf8     | utf8_general_ci  | latin1_swedish_ci | 
+-----+---------------------------------+-----------+-----------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ 
1 row in set (0.27 sec) 

의 이름을 얻을 수있는 명령을 실행 가질 수의 저장 프로 시저의 내용을 볼 수있는 문제와 사투를 벌인거야 안녕하세요 이 절차는 이름을 가진 저를 보여줍니다 control_table 내가 은 SHOW 절차가 control_table가이 형식이 아닌 내용의 표시이다 CREATE 사용한 절차를 보려면

01 2,336,

가 나는

+0

그래서이 프로 시저로 수행하려는 작업은 컨텐츠를 업데이트하려고합니까? –

+0

예 내용을 업데이 트해야합니다 – anish

+0

절차는 phpMyAdmin의 루틴 탭에서 찾을 수 있습니다 거기 밖으로 확인하시기 바랍니다 –

답변

1

절차 information_schema.routines에 저장되는 과정을 볼 수없는이 사용 MySQL의 클라이언트와 MySQL 클라이언트 워크 벤치를 실행하게한다. 쇼 생성은 여기에 control_table에 대한 항목이 있지만 routine_definition이 비어 있습니다. 이는 누군가가 information_schema.routines를 수정했음을 나타냅니다. O/당신이 승 몸을 업데이트해야 할 경우 =====이 출력입니다 ==

mysql> select routine_name,routine_definition 
    -> from information_schema.ROUTINES 
    -> where routine_name = 'control_table' 
    -> ; 
+---------------------------------+--------------------+ 
| routine_name     | routine_definition | 
+---------------------------------+--------------------+ 
| control_table | NULL    | 
+---------------------------------+--------------------+ 
1 row in set (0.28 sec) 
0

select routine_name,routine_definition 
from information_schema.ROUTINES 
where routine_name = 'control_table' 

을 - 당신은 간단한 선택으로 information_schema.routines의 내용을 확인할 수 있습니다 표준 SQL 명령어 (DROP/CREATE PROCEDURE)를 사용하면 다음 명령어를 사용할 수 있습니다.

UPDATE mysql.proc SET body='begin select 2 from dual; end' WHERE `name` = 'control_table';