Trong ngữ cảnh cơ sở dữ liệu MySQL, sự khác biệt giữa 3 thuật ngữ này là gì:
- thủ tục lưu trữ
- chức năng được lưu trữ
- quy trình lưu trữ
Ngoài ra các chức năng tích hợp như các chức năng thời gian ngày tháng đó (ví dụ: WEEKDAY()
vv) được coi là gì?
Trong ngữ cảnh cơ sở dữ liệu MySQL, sự khác biệt giữa 3 thuật ngữ này là gì:
Ngoài ra các chức năng tích hợp như các chức năng thời gian ngày tháng đó (ví dụ: WEEKDAY()
vv) được coi là gì?
Câu trả lời:
Google là bạn của bạn. Kết quả phù hợp đầu tiên cho "thủ tục hàm thông thường mysql" là: http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html
Một bản tóm tắt nhanh:
Một thói quen được lưu trữ là một thủ tục hoặc một hàm.
Một thủ tục được gọi bằng câu lệnh CALL và chỉ có thể trả lại giá trị bằng cách sử dụng các biến đầu ra.
Một hàm có thể được gọi từ bên trong một câu lệnh giống như bất kỳ hàm nào khác và có thể trả về một giá trị vô hướng.
Ở đây tôi đã cố gắng tóm tắt sự khác biệt giữa các hàm và thủ tục:
SELECT func_name FROM DUAL
các thủ tục while không thể.Sự khác biệt giữa hàm MySQL và thủ tục mysql
Hàm MYSQL
Nó phải trả về giá trị.
IN
,OUT
VàINOUT
không thể được sử dụng trong function.But trở datatype phải khai báo khi tạo một hàm. hàm có thể được gọi từ một câu lệnh SQL. Hàm trả về một giá trị.
Thủ tục MYSQL
Giá trị trả về là không bắt buộc nhưng có thể được sử dụng tham số OUT để trả về thủ tục. Có thể sử dụng
IN
|OUT
|INOUT
thông số. Không thể gọi thủ tục từ Câu lệnh SQL. thủ tục trả về nhiều giá trị bằng cách sử dụngOUT
hoặcINOUT
tham số.
THỦ TỤC VS CHỨC NĂNG
1. PROCEDURES may or may not return a value but FUNCTION must return a value
2. PROCEDURES can have input/output parameter but FUNCTION only has input parameter.
3. We can call FUNCTION from PROCEDURES but cannot call PROCEDURES from a function.
4. We cannot use PROCEDURES in SQL statement like SELECT, INSERT, UPDATE, DELETE, MERGE etc. but we can use them with FUNCTION.
5. We can use try-catch exception handling in PROCEDURES but we cannot do that in FUNCTION.
6. We can use transaction in PROCEDURES but it is not possible in FUNCTION.
Hàm phải trả về một giá trị nhưng trong Thủ tục lưu trữ thì nó là tùy chọn (Thủ tục có thể trả về giá trị 0 hoặc n). Các hàm có thể chỉ có các tham số đầu vào cho nó trong khi các Thủ tục có thể có các tham số đầu vào / đầu ra. Các hàm có thể được gọi từ Thủ tục trong khi các Thủ tục không thể được gọi từ Hàm.