คำสั่ง SHOW CREATE PROCEDURE
ใช้เพื่อดู Definition (โค้ดสร้าง) ของ Stored Procedure ที่มีอยู่แล้ว รวมถึง Character Set, Collation, SQL Mode และ Definer
Syntax
SHOW CREATE PROCEDURE procedure_name;
ตัวอย่างเต็ม
สร้าง Procedure:
DELIMITER //
CREATE PROCEDURE sample_Procedure()
BEGIN
SELECT 'HELLO MYSQL!!!!';
END //
DELIMITER ;
เรียกใช้งาน:
CALL sample_Procedure();
แสดงโครงสร้าง:
SHOW CREATE PROCEDURE sample_Procedure;
ผลลัพธ์ (จัดรูปแบบให้อ่านง่าย):
| Column | Value |
|---|---|
| Procedure | sample_Procedure |
| sql_mode | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
| Create Procedure | CREATE DEFINER=`root`@`%` PROCEDURE `sample_Procedure`() BEGIN SELECT "HELLO MYSQL!!!!"; END |
| character_set_client | utf8 |
| collation_connection | utf8_general_ci |
| Database Collation | utf8_unicode_ci |
คอลัมน์สำคัญในผลลัพธ์
- Procedure: ชื่อ Procedure
- sql_mode: SQL Mode ที่มีผลตอน CREATE (สำคัญต่อพฤติกรรม)
- Create Procedure: โค้ดเต็มที่สามารถ Copy ไป Run ใหม่ได้ (รวม DEFINER)
- character_set_client / collation_connection: Encoding ตอนสร้าง
- Database Collation: Collation ของ Database ปัจจุบัน
คำสั่งที่เกี่ยวข้อง
SHOW PROCEDURE STATUS;- รายการ Procedure ทั้งหมด พร้อม MetadataSHOW PROCEDURE STATUS WHERE Db = 'db_name';- กรองตาม DatabaseSELECT * FROM information_schema.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE';- Query แบบละเอียดจาก Information Schema
ใช้งานจริง: Backup/Version Control
-- Export ทุก Procedure ใน Database
SELECT CONCAT('SHOW CREATE PROCEDURE ', ROUTINE_NAME, ';')
FROM information_schema.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_SCHEMA = 'my_db';