تعديل الدالة ALTER FUNCTION في SQL
يستخدم هذا الأمر لتعديل تعريف دالة مُعرَّفة مسبقًا عبر الأمر CREATE FUNCTION
، وله الصيغ الآتية:
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
RENAME TO new_name;
لإعادة تسمية الدالة name
(والتي معاملاتها محددة بالنوع argmode
والاسم argname
ونوع البيانات argtype
) باسم جديد new_name
.
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
OWNER TO { new_owner | CURRENT_USER | SESSION_USER };
لنقل ملكية الدالة name
(والتي معاملاتها محددة بالنوع argmode
والاسم argname
ونوع البيانات argtype
) إلى مالك جديد new_owner
أو المستخدم الحالي CURRENT_USER
.
أما لتغيير مهمة الدالة (بنيتها الداخلية body
) فيُستخدم الأمر بالشكل:
ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
RETURNS return_data_type
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
;
إذ يمكن تعديل أيّ من الخصائص الواردة بتعريف الدالة كما هو الحال عند إنشائها عبر الأمر CREATE FUNCTION
.
أمثلة
لإعادة تسمية الدالة sqrt
لتصبح باسم square_root
، يستخدم الأمر:
ALTER FUNCTION sqrt(integer) RENAME TO square_root;
لتعديل الدالة get_count
المُنشأة مسبقًا لتعيد عدد السجلات التي يكون فيها معدل الطالب أكبر من 2 بدلًا من العدد الإجمالي، يستخدم الأمر:
ALTER FUNCTION get_count (OUT num INTEGER) AS
SELECT COUNT(*) INTO num FROM students
WHERE GPA>2;
التوافقية
SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
---|---|---|---|---|
نعم | لا | نعم | نعم | نعم |
يقتصر هذا الأمر في محرك Oracle على إعادة ترجمة recompile الدالة من خلال الكلمة المفتاحية COMPILE
.