تعيين القيمة تزايد السيارات لعمود جديد في أوراكل
سؤال
ولدي هذا الجدول في DB أوراكل التي لديها مفتاح أساسي المعرفة على 3 من أعمدة البيانات. أريد أن إسقاط قيد مفتاح أساسي للسماح الصفوف مع بيانات مكررة لتلك الأعمدة، وإنشاء عمود جديد، "الهوية"، لاحتواء ID صحيح، تزايد السيارات لهذه الصفوف. أنا أعرف كيف لخلق سلسلة ويؤدي إلى إضافة ID-تزايد السيارات لصفوف جديدة تضاف الى طاولة المفاوضات، ولكن هل من الممكن لكتابة بيان PL / SQL لإضافة معرفات فريدة لكافة الصفوف التي هي بالفعل في الجدول؟
المحلول
وبمجرد الانتهاء من إنشاء التسلسل:
update mytable
set id = mysequence.nextval;
نصائح أخرى
إذا كنت فقط باستخدام عدد صحيح لتسلسل هل يمكن تحديث معرف مع ROWNUM. منها مثلا.
update
table
set id = rownum
وثم تحتاج إلى إعادة تعيين تسلسل لهوية صالحة المقبل.
وهذا هو ما تحتاج إليه؟
UPDATE your_table
SET id = your_seq.nextval;
وهذا يفترض كنت لا تهتم بأي ترتيب المفاتيح الأساسية الخاصة بك في.
أولا يجب أن تحقق PCTFREE الخاص بك ... هناك مساحة كافية لكل صف للحصول على أطول؟
إذا اخترت PCTFREE صغير جدا أو البيانات الخاصة بك لديها الكثير من التحديثات زيادة طول، قد يبدأ تسلسل كل صف للقيام بذلك كتحديث.
وأنت تقريبا بالتأكيد أفضل للقيام بذلك باعتباره كبار المستشارين التقنيين.
إنشاء T2 الجدول كما حدد seq.nextval، T1. * من t1.
وانخفاض T1
وإعادة تسمية T2 إلى T1.