بتاريخ: 7 أكتوبر 200817 سنة comment_140233 السلام عليكم سؤالي هو هل يمكن انشاء trigger يقوم بتشغيل SEQUENCE بحيث احصل على ترقيم تلقائي لحقل معين ؟وشكرا تقديم بلاغ
بتاريخ: 10 أكتوبر 200817 سنة comment_140421 على حسب اللى فهمته من سؤالك انك عاوز تعمل قيم تسلسليه لحقل رقمى من خلال Trigger .المفروض الوضع العادى يكون هكذا :- CREATE SEQUENCE hany; CREATE TABLE t1 ( ID NUMBER PRIMARY KEY, NAME VARCHAR2(22)); INSERT INTO t1 VALUES (hany.NEXTVAL, 'name1'); INSERT INTO t1 VALUES (hany.NEXTVAL, 'name2'); INSERT INTO t1 VALUES (hany.NEXTVAL, 'name3'); INSERT INTO t1 VALUES (hany.NEXTVAL, 'name4'); INSERT INTO t1 VALUES (hany.NEXTVAL, 'name5'); و لملىء الجدول فى خطوة واحده :- TRUNCATE TABLE t1; --- Table truncated. BEGIN FOR i IN 1 .. 10 LOOP INSERT INTO t1 VALUES (i, 'MR.' || i); END LOOP; COMMIT; END; / كده هتلاقى ان فى 10 صفوف تم وضعهم بالجدول .... و فى ال For Loop حدد الرقم الذى تريد ان تصل اليه .-------------بالنسبة لأستخدام ال Trigger فده اللى انا توصلت له :- DROP TABLE t1; CREATE TABLE t1 (id NUMBER PRIMARY KEY,name VARCHAR2(12) NOT NULL); ----- DROP SEQUENCE hany; CREATE SEQUENCE hany; ------ CREATE OR REPLACE TRIGGER insert_squ BEFORE INSERT OR UPDATE ON T1 FOR EACH ROW DECLARE NN NUMBER; BEGIN SELECT HANY.NEXTVAL INTO NN FROM DUAL; :NEW.ID := NN; END; / ------- INSERT INTO T1 (name) VALUES ('QQW'); INSERT INTO T1 (name) VALUES ('QSW'); INSERT INTO T1 (name) VALUES ('VQW'); INSERT INTO T1 (name) VALUES ('QNW'); INSERT INTO T1 (name) VALUES ('QQP'); INSERT INTO T1 (name) VALUES ('QYW'); ------- select * from t1; أذا كان لديك قصد أخر فأرجو أخبارى ...... و شكراً تقديم بلاغ
بتاريخ: 13 أكتوبر 200817 سنة كاتب الموضوع comment_140659 شكرا اخي العزيز الطريقة الثانية هي المطلوبة .... وقد جربتها باستخدام برنامج toad وصار الترقيم تلقائي للحقل..جزاء الله خيرا ...... تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.