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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

هل يمكن انشاء trigger يقوم بتشغيل SEQUENCE بحيث احصل على ترقيم تلقائي لحقل معين


3 رد (ردود) على هذا الموضوع

#1 العصفور

العصفور

    عضو

  • الأعضــاء
  • 25 مشاركة

تاريخ المشاركة 07 October 2008 - 04:02 PM

السلام عليكم

سؤالي هو هل يمكن انشاء trigger يقوم بتشغيل SEQUENCE بحيث احصل على ترقيم تلقائي لحقل معين ؟

وشكرا

#2 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 10 October 2008 - 09:05 PM

على حسب اللى فهمته من سؤالك انك عاوز تعمل قيم تسلسليه لحقل رقمى من خلال 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;


أذا كان لديك قصد أخر فأرجو أخبارى ...... و شكراً

#3 العصفور

العصفور

    عضو

  • الأعضــاء
  • 25 مشاركة

تاريخ المشاركة 13 October 2008 - 06:22 PM

شكرا اخي العزيز

الطريقة الثانية هي المطلوبة .... وقد جربتها باستخدام برنامج toad وصار الترقيم تلقائي للحقل..


جزاء الله خيرا ......

#4 awn78

awn78

    عضو نشط

  • الأعضــاء
  • 491 مشاركة

تاريخ المشاركة 13 October 2008 - 07:47 PM

كيف يتم الترقيم التلقائي عن طريق التود
صورة