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

ايقاف قيد primary key


eiadali

Recommended Posts

لدينا جدول فرضا جدول العملاء ويوجد فيه بيانات وتم ايقاف قيد primary key وتكررت بيانات العملاء واكيد انه لن استطيع تفعيل primary key مرة اخرى بعد ما تكررت البيانات  اريد حل او امر في sql  تحذف التكرار بحيث اذا تم تفعيل primary key مرة اخرى لا يطلع لي اي مشكلة

تم تعديل بواسطة eiadali
رابط هذا التعليق
شارك

يمكنك عمل اى من الاختيارين:

الاول:

هو انك تعيد ترتيب السيريال من البداية, اذا كان هذا الامر مناسب ولا يتسبب فى اختلاف فى عملية الربط بين هذا الجدول مع باقى الجداول

declare
	cursor v is select rowid,PK_column from your_table;
	pk_val number; --check if your pk is number;
	pk_row varchar2(60);
	new_rec number:=1; --or you can create sequence and put next_val into new_rec;
begin
	open v;
	loop
		fetch v into pk_row,pk_val;
		exit when v%notfound;
		update your_table
		set PK_column=new_rec
		where rowid=pk_row;
		new_rec:=new_rec+1;
	end loop;
	close v;
	commit;
end;

 

الثانى:

هو حذف المتكرر فقط مع استبدالة برقم جديد, وهذا لعمل استعلام عن الاكواد المكررة

SELECT PK_column, COUNT(*) AS dupes 
FROM Your_table
GROUP BY PK_column
HAVING COUNT(*) > 1;

 

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية