البرمجة

كيفية إنشاء دالة PostgreSQL لعرض عدد الصفوف المتأثرة

لقد أنشأتَ دالة في PostgreSQL، وقمت بتعريف قيمة الإرجاع (return value) على النوع “void”، ولكنك ترغب في عرض عدد الصفوف المتأثرة بعملية التحديث. يمكنك تحقيق ذلك باستخدام متغير مؤقت لتخزين العدد الناتج من عملية التحديث، ثم إرجاع قيمة هذا المتغير بدلاً من استخدام قيمة “void”. فيما يلي توضيح لكيفية تحقيق ذلك:

sql
CREATE OR REPLACE FUNCTION update_and_return_count() RETURNS integer AS $BODY$ DECLARE rows_affected integer; -- تعريف متغير لتخزين عدد الصفوف المتأثرة BEGIN UPDATE test_a SET name = 'cde' WHERE name = 'abc'; GET DIAGNOSTICS rows_affected = ROW_COUNT; -- استخراج عدد الصفوف المتأثرة UPDATE test_b SET name = 'mno' WHERE name = 'klm'; GET DIAGNOSTICS rows_affected = rows_affected + ROW_COUNT; -- إضافة عدد الصفوف المتأثرة في الجدول الثاني RETURN rows_affected; -- إرجاع عدد الصفوف المتأثرة END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION update_and_return_count() OWNER TO postgres;

في هذا الكود، قمت بإنشاء دالة جديدة تسمى “update_and_return_count”، والتي تعود بقيمة من نوع integer بدلاً من void. ثم قمت بتعريف متغير “rows_affected” لتخزين عدد الصفوف المتأثرة بعمليات التحديث. داخل الكتلة البرمجية، يتم تنفيذ عمليات التحديث واحدة تلو الأخرى، وفي كل عملية يتم استخدام الدالة “GET DIAGNOSTICS” لاستخراج عدد الصفوف المتأثرة وتخزينها في المتغير “rows_affected”، ثم يتم إرجاع قيمة هذا المتغير في نهاية الدالة.

باستخدام هذه الدالة، يمكنك الآن الحصول على عدد الصفوف المتأثرة بعمليات التحديث التي تقوم بها في قاعدة البيانات الخاصة بك.

المزيد من المعلومات

بالطبع، هنا بعض المعلومات الإضافية التي يمكن أن تكون مفيدة بشأن الدالة التي تم إنشاؤها في PostgreSQL:

  1. تحديث قيمة الدالة:

    • يمكنك تحديث تعريف الدالة باستخدام الأمر “CREATE OR REPLACE FUNCTION” كما فعلت مع الدالة الأصلية. هذا يسمح لك بتعديل الدالة دون الحاجة إلى حذفها وإعادة إنشائها.
  2. نوع الإرجاع (Return Type):

    • في هذا المثال، قمت بتعريف نوع الإرجاع على أنه integer. يمكنك تغيير هذا النوع حسب الاحتياجات. على سبيل المثال، إذا كنت ترغب في إرجاع قيمة boolean للإشارة إلى نجاح أو فشل العملية، يمكنك تغيير نوع الإرجاع إلى boolean.
  3. استخدام الأمر “GET DIAGNOSTICS”:

    • هذا الأمر يُستخدم لاسترداد معلومات التشخيص الخاصة بالعمليات المتبوعة في الكود المخزن. في هذه الحالة، استخدمناه لاسترداد عدد الصفوف المتأثرة بكل عملية تحديث.
  4. تحديد تكلفة الدالة:

    • يمكنك تحديد تكلفة الدالة باستخدام عبارة “COST”. يُستخدم هذا لتحديد تقدير تكلفة استخدام الدالة في تقييم الاستعلامات وتحسين أداء الاستعلامات.
  5. تعديل الصلاحيات:

    • يمكنك تعديل صلاحيات الدالة باستخدام الأمر “ALTER FUNCTION” كما فعلت لتعيين مالك الدالة إلى “postgres”. يمكنك تعديل الصلاحيات لضمان أن الدالة يمكن الوصول إليها بشكل صحيح من قبل المستخدمين المناسبين.

من المهم أن تقوم بتوثيق وثائق الدالة بشكل جيد لتسهيل فهم كيفية استخدامها وتعديلها في المستقبل.

زر الذهاب إلى الأعلى