SP ב MYSQL
-
מישהו יודע לכתוב SP בMYSQL?
כתבתי כמה פרוצדורות ופונקציות, אבל חסר לי משהו בתחביר הבסיסי להבנה כיצד לכתוב.
אשמח אם מישהו יוכל להעלות מספר דוגמאות של פונקציות בעיקר, וגם פרוצדורות.תודה
פורסם במקור בפורום CODE613 ב17/06/2016 09:44 (+03:00)
-
חברי'ה? אפשר בבקשה דוגמא לפרוצדורות/פונקציות שמורות בMYSQL?
פורסם במקור בפורום CODE613 ב19/06/2016 11:31 (+03:00)
-
מבנה בסיסי:
CREATE PROCEDURE get_employees AS
select * from employees
קריאה לפרוצדורה:
execute get_employees
או:
exe get_employees
פונקציות:
מבנה בסיסי
CREATE FUNCTION function_name[רשימת הפרמטרים שהפונקציה מקבלת]
RETURNS return_data_type //צריך להגדיר את סוג הערך המוחזר מהפונקציה לדוג' varchar
AS BEGIN
//בגוף הפונקציה צריך להגדיר משתנה מקומי שמחזיר את הערך מהפונקציה כמובן שהוא צריך להיות מאותו סוג ערך שהוגרד למעלה!
//כתיבת גוף הפונקציה (הקוד...)
RETURN scalar_expression //הפונקציה מחזירה את המשתנה המקומי שהוגדר
END
דוג':
(create function(@a floatפורסם במקור בפורום CODE613 ב19/06/2016 12:27 (+03:00)
-
דוג':
(create function sample(@a float
RETURNS float
AS
BEGIN
DECLARE @num flout
(select @num= avg(price
from prices
where id = @a
return @num
ENDקיימות עוד סוגים של פונקציות, אבל זה הבסיס.
פורסם במקור בפורום CODE613 ב19/06/2016 12:35 (+03:00)
-
דוג':
(create function sample(@a float
RETURNS float
AS
BEGIN
DECLARE @num flout
(select @num= avg(price
from prices
where id = @a
return @num
ENDקיימות עוד סוגים של פונקציות, אבל זה הבסיס.
על איזה גירסה של MYSQL אתה מדבר?
אצלי יש 5.1.73, ואת ה@ הוא בכלל לא מכיר, תחת זאת יש את INTO.ו... ברכות למשתמש הטרי! נראה שנרשמת על מנת לעזור לי
פורסם במקור בפורום CODE613 ב19/06/2016 13:22 (+03:00)
-
ה@ זה הסינטקס של SQL. בMYSQL לא צריך אותו.
פורסם במקור בפורום CODE613 ב19/06/2016 13:40 (+03:00)
-
למען הסדר הטוב, אביא להלן את הסינטקס הנכון ששימש אותי.
ותודה לEsti על העזרה שהנחתה אותי למצוא את התחביר הכללי הנכון.
השימוש הוא בDelimiter /create function sample(Param1 int) RETURNS float DETERMINISTIC BEGIN DECLARE paramRetrun float; SELECT tbl1.clm1 - tbl1.clm2 AS ViewClm INTO paramRetrun FROM tblBookkeeping WHERE 1=1; RETURN(paramRetrun); END; / פורסם במקור בפורום CODE613 ב20/06/2016 13:11 (+03:00)
-
בהצלחה!
פורסם במקור בפורום CODE613 ב20/06/2016 14:02 (+03:00)
8/8