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

Khác biệt quan trọng giữa MySQL Function và Procedure

Khác biệt cốt lõi: cách gọi và mục đích khác nhau.

  • Procedure:
    • Không trả về giá trị (không có RETURNS)
    • Gọi bằng CALL để thực hiện thao tác: sửa bảng, xử lý record...
    • Tham số: IN, OUT, INOUT (trả giá trị qua OUT/INOUT)
  • Function:
    • Trả về một giá trị đơn (bắt buộc có RETURNS type và RETURN)
    • Gọi trong biểu thức (như hằng số, hàm built-in, cột bảng)
    • Chỉ có tham số IN (đầu vào)
    • Không gọi bằng CALL, không dùng trong biểu thức

Cú pháp tạo khác nhau:

CREATE PROCEDURE sp_name ([IN|OUT|INOUT] param_name type) ...
CREATE FUNCTION sp_name ([param_name type]) RETURNS type ...

Function bắt buộc có RETURNS và RETURN, Procedure thì không.