Tóm tắt
Dùng SHOW CREATE PROCEDURE ten_thu_tuc – nếu tồn tại trả về định nghĩa, không thì báo lỗi.
Ví dụ
1. Tạo stored procedure
DELIMITER //
CREATE PROCEDURE ExtenddatesWithMonthdemo(
IN date1 DATETIME,
IN NumberOfMonth INT
)
BEGIN
SELECT DATE_ADD(date1, INTERVAL NumberOfMonth MONTH) AS ExtendDate;
END //
DELIMITER ;
2. Kiểm tra tồn tại
SHOW CREATE PROCEDURE ExtenddatesWithMonthdemo;
3. Kết quả (rút gọn)
+--------------------------+----------------------------+------------------------------------------------------------------+-------------------+-------------------+-----------------+
| Procedure | sql_mode | Create Procedure | character_set_client | collation_connection | Database Collation |
+--------------------------+----------------------------+------------------------------------------------------------------+-------------------+-------------------+-----------------+
| ExtenddatesWithMonthdemo | STRICT_TRANS_TABLES,... | CREATE DEFINER=`root`@`%` PROCEDURE `ExtenddatesWithMonthdemo`... | utf8 | utf8_general_ci | utf8_general_ci |
+--------------------------+----------------------------+------------------------------------------------------------------+-------------------+-------------------+-----------------+
4. Gọi thủ tục
CALL ExtenddatesWithMonthdemo('2019-02-13', 6);
-- Kết quả: 2019-08-13 00:00:00
Cách khác kiểm tra tồn tại
SHOW PROCEDURE STATUS WHERE Name = 'ten_tu_tuc'– liệt kê metadata.SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = 'db' AND ROUTINE_NAME = 'ten' AND ROUTINE_TYPE = 'PROCEDURE'– chuẩn SQL, dùng trong code.DROP PROCEDURE IF EXISTS ten– xóa nếu có, không báo lỗi.