الانتقال إلى المحتوى

Create Table هل تقبل العمليات الحسابية


obc88

Recommended Posts

السلام عليكم ورحمة الله وبركاته طبعا ممكن أن تنشئ جدول من جدول أخر عن طريق جملة Select

Create table test as select  so you can here to do what you want and no need to make view

تم تعديل بواسطة islamic_boy600
رابط هذا التعليق
شارك

لدي جدول به السعر والخصم والاجمالي هل يمكن عن طريق امر انشاء الجدول ادراج العملية الحسابية بها دون الحاجة لانشاء VIEW


الأخ الكريم السعر والخصم حقول مخزنة ... أما الإجمالي حقل محسوب وليس مخزن ... يعني مينفعش نعمل حقل مخزن للإجماليات ( حسب تحليل النظم ) ... فلماذا ترغب في ذلك هل هناك سبب معين لذلك ؟؟؟

علي العموم سأعتبر أن هناك سبب خاص ... نفرض أن لديك جدول خاص بالمبيعات يدعي INVOICE . يحتوي علي 3 حقول الأول INVOICE_PRICE والثاني INVOICE_DISCOUNT والثالث INVOICE_SUM . يمكنك إنشاء TRIGGER مناسب علي مستوي الجدول INVOICE بحيث أن ينفذ هذه العملية بصفة مستمرة أثناء إجراء إدراج أو تحديث بالجدول كما يلي :


CREATE OR REPLACE TRIGGER TRG_BEFORE_INVOICE BEFORE INSERT OR UPDATE OR DELETE ON INVOICE
FOR EACH ROW
DECLARE
  FUNCTION GET_INVOICE_SUM RETURN NUMBER
  AS
  ID_SUM   NUMBER(20,3);
  BEGIN
  SELECT INVOICE_PRECE + (INVOICE_PRECE * INVOICE_DISCOUNT)
  INTO ID_SUM
  FROM INVOICE
  WHERE INVOICE_ID = :NEW.INVOICE_ID;

  RETURN S;
  END;
BEGIN
  IF(INSERTING OR UPDATING)THEN
   :NEW.INVOICE_SUM := GET_INVOICE_SUM;
  END IF;
END;
/



وبكدة هيكون الحقل محدث تحديث تلقائي بصفة مستمرة وبدون أي مشاكل ... وإليك مثال أدق وابسط :

نفرض أن لدينا جدول يدعي EMP ... يحتوي علي علي حقلين ... الأول EMP_NAME والثاني EMP_NAME_COPY بحيث أن يتم إدراج آخر تحديث لحقل إسم الموظف ، أنظر كيف يتم ذلك :

CREATE OR REPLACE TRIGGER TRG_BEFORE_EMP BEFORE INSERT OR UPDATE OR DELETE ON EMP
FOR EACH ROW
BEGIN
  IF(INSERTING OR UPDATING)THEN
   :NEW.EMP_NAME_COPY := :OLD.EMP_NAME;
  END IF;  
END;
/



......
.....
....
...
..
.


وهكذا




بالتوفيق

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية