تعيين القيمة تزايد السيارات لعمود جديد في أوراكل

StackOverflow https://stackoverflow.com/questions/243790

  •  04-07-2019
  •  | 
  •  

سؤال

ولدي هذا الجدول في 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top