Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Kiểm tra stored procedure có tồn tại trong MySQL

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.