الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مساعدة فى عمل تريجر لتعديل البيانات فى جدول اخر

Featured Replies

بتاريخ:

 

بسم الله الرحمن الرحيم

 

انا طالب مساعدة في عمل تريجر عند ادخال بيانات جديدة في جدول يتم التعديل على بيانات جدول اخر

 

مثال

 

عندى جدول a يتكون من (الاسم - الكمية) وجدول b يتكون من (الاسم - الكمية)

فأذا تم ادخال  بيانات جديدة في الجدول a

يتم عمل الاتى

1- اذا كان الاسم الجديد المدخل في الجدول a موجود في الجدول b يتم اضافة الكمية الجديدة على الكمية الموجودة بالفعل

2- اذا كان الاسم المدخل في الجدول a ليس موجود في الجدول b يتم اضافة ريكورد جديد بالبيانات الجديدة في الجدول a (الاسم - الكمية)

 

هذا مثال لتوضيح سؤال فقط

وعموما انا هستخدم التريجر دة في جدول المشتريات علشان يأثر على بيانات لمخزن بعد عملية الشراء

 

وشكرا ليكم

 

بتاريخ:

السلام عليكم ورحمة الله وبركاته

 

اخي الكريم

 

راجع الرابط التالي

 

http://www.araboug.org/ib/index.php?showtopic=27120&page=3

 

 

جزاك الله كل خير

بتاريخ:
  • كاتب الموضوع

مشكوررررررررررر جدا  ليك
بس مش هو دة الى انا عايزة بس
مشكور انا استفدت منه في شوية افكار هجربها
واحاول تانى

بتاريخ:

جرب تظيف التريجر دا على مستوى الداتابيز

CREATE OR REPLACE TRIGGER INSET_ON_B
 AFTER INSERT ON A
 REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW  
 DECLARE
 chk NUMBER;
BEGIN
SELECT COUNT(name)  INTO chk
FROM B WHERE name = :NEW.name ;
IF chk=0
THEN
INSERT INTO B (name , quantity )
VALUES
(:NEW.name , :NEW.quantity);
ELSE
UPDATE B
SET quantity = quantity + :NEW.quantity
WHERE name = :NEW.name ;
END IF;
  NULL;
END;
/

تم تعديل بواسطة Ahmad.Hasan

بتاريخ:
  • كاتب الموضوع

جرب تظيف التريجر دا على مستوى الداتابيز

CREATE OR REPLACE TRIGGER INSET_ON_B

 AFTER INSERT ON A

 REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW  

 DECLARE

 chk NUMBER;

BEGIN

SELECT COUNT(name)  INTO chk

FROM B WHERE name = :NEW.name ;

IF chk=0

THEN

INSERT INTO B (name , quantity )

VALUES

(:NEW.name , :NEW.quantity);

ELSE

UPDATE B

SET quantity = quantity + :NEW.quantity

WHERE name = :NEW.name ;

END IF;

  NULL;

END;

/

 

 

تسلم ايدك يا باش مهندس فكرة جميلة

تم تعديل بواسطة ahmedghaly

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.