بتاريخ: 12 نوفمبر 200817 سنة comment_142910 أخواتي الكرام السلام عليكم ورحمة الله وبركاتةعندي مشكلة بسيط بإزن الله عندي 2 جدول علي ازكيما واحده جدول الموظفين وجدول الحالة التعليمة للموظف (عايز اعمل اب ديت من جدول الموظفين الي جدول الحالة التعليمية)عايز انقل البيانات الموجوده من حقل employee_id الموجود في جدول الموظفين الي employee_id الموجود في جدول الحالة التعليمية وكذلك بعض الكولمات الاخري انا استخدمت الكود ده ومش مظبوط معايا update educationsset educations.employee_id=(select employee_id from employees where educations.employee_id=employees.employee_id);ما الحل اخواتي في الله تقديم بلاغ
بتاريخ: 12 نوفمبر 200817 سنة comment_142917 اخي العزيز ما المعنى من استفسارك هذا ،،، إذا كانت هناك علاقة اعتمادية بين الجداول فلن تحتاج لعمل تلك العمليةأي إذا كان employee_id الموجود بجدول الحالة التعليمية FK للموجود بجدول الموظفين فإنك لن تستطيع تغيير الPK طالما هناك بيان في جدول آخر يعتمد عليه تقديم بلاغ
بتاريخ: 13 نوفمبر 200817 سنة comment_142940 أخواتي الكرام السلام عليكم ورحمة الله وبركاتةعندي مشكلة بسيط بإزن الله عندي 2 جدول علي ازكيما واحده جدول الموظفين وجدول الحالة التعليمة للموظف (عايز اعمل اب ديت من جدول الموظفين الي جدول الحالة التعليمية)عايز انقل البيانات الموجوده من حقل employee_id الموجود في جدول الموظفين الي employee_id الموجود في جدول الحالة التعليمية وكذلك بعض الكولمات الاخري انا استخدمت الكود ده ومش مظبوط معايا update educationsset educations.employee_id=(select employee_id from employees where educations.employee_id=employees.employee_id);ما الحل اخواتي في الله السلام عليكم ورحمة الله وبركاتهبعد التحيةاخي فاللهجرب كده اضافة اخر سطرين او نفذ الكود المرفق هذاupdate educationsset educations.employee_id=(select employee_id from employees where educations.employee_id=employees.employee_id) WHERE EXISTS(select employee_id from employees where educations.employee_id=employees.employee_id) وفقك الله الى ما تحب ويرضي تقديم بلاغ
بتاريخ: 13 نوفمبر 200817 سنة كاتب الموضوع comment_142952 أشكركم علي الاجابات جربت الكود ولكن اداني zero row updateمع ان الكولم بتاع جدول الموظفين يوجد في 250 موظفانتظر الحل أخواتي اشكركم تقديم بلاغ
بتاريخ: 16 نوفمبر 200817 سنة comment_143141 مرحباشي طبيعي ما يعدل اي سجل لانه انت ما غيرت قيمة رقم الموظف؟؟الهدف من رقم الموظف هو ربط الجدولين و عليه انت لازم تعمل: update educations a set a.field1=(select b.field1 from emp b where b.empno=a.empno); commit و احنا هيك عملنا تعديل لقيمة field1 في جدول التعليمة اللي اخذناها من جدول الموظفين و ربطنا رقم الموظف في الجدولين. تقديم بلاغ
بتاريخ: 17 نوفمبر 200817 سنة comment_143159 هفرض أن هناك جدول خاص بالموظفين يدعي Employees ، وجدول آخر خاص بنسخ بيانات الموظفين يدعي EmpCopys ، وبياناتهما كما يلي : CREATE TABLE EMPLOYEES ( EMPLOYEES_NO NUMBER(10), EMPLOYEES_NAME VARCHAR2(20), CONSTRAINT PK_EMPLOYEES PRIMARY KEY(EMPLOYEES_ID), CONSTRAINT UQ_EMPLOYEES_NAME UNIQUE(EMPLOYEES_NAME) ) / CREATE TABLE EMPCOPYS ( EMPCOPYS_NO NUMBER(10), EMPCOPYS_NAME VARCHAR2(20), CONSTRAINT PK_EMPCOPYS PRIMARY KEY(EMPCOPYS_ID), CONSTRAINT UQ-EMPCOPYS_NAME UNIQUE( EMPCOPYS_NAME) ) / المطلوب ، كل حركة تتم داخل جدول الـ Employees ، تنفذ علي جدول EmpCopys ، وهناك حلين ، إما إنشاء Trigger علي مستوي جدول الموظفين ، أو علي مستوي بلوك البيانات Form الخاص بالموظفين ، عموماً إليك الطريقة الأولي : CREATE OR REPLACE TRIGGER TRG_BEFORE_EMPLOYEES BEFORE INSERT OR UPDATE OR DELETE ON EMPLOYEES FOR EACH ROW DECLARE BEGIN IF(INSERTING)THEN INSERT INTO EMPCOPYS VALUES(:NEW.EMPLOYEES_NO, :NEW.EMPLOYEES_NAME); ELSIF(UPDATING)THEN UPDATE EMPCOPYS SET EMPCOPYS_NO = :NEW.EMPLOYEES_NO, EMPCOPYS_NAME = :NEW.EMPLOYEES_NAME WHERE EMPCOPYS_NO = :NEW.EMPLOYEES_NO; ELSE DELETE FROM EMPCOPYS WHERE EMPCOPYS_NO = :NEW.EMPLOYEES_NO; END IF; END; / وتقريباً نفس الفكرة تنشأ في Form --> Employee Block --> Post Triggerبالتوفيق تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.