وبلاگ امیررضا رستنده

نکاتی در ارتباط با دیتابیس اوراکل و لینوکس

وبلاگ امیررضا رستنده

نکاتی در ارتباط با دیتابیس اوراکل و لینوکس

  • ۰
  • ۰

نحوه برطرف کردن خطای ora-02437 cannot validate primary key violated

 

لازم است کارهای زیر را به ترتیب انجام دهید:

 

@?/rdbms/admin/utlexpt1.sql

 

با اجرای دستور بالا، جدول EXCEPTIONS ایجاد می شود. (در اسکیمای sys)

**************************************************************

SQL> alter table MY_INFORMATIONS add constraint MY_TAB_PK primary key (COL1, COL2, COL3, COL4) exceptions into SYS.EXCEPTIONS;

select * from exceptions

 

حالا مشخصات سطرهایی که مشکل ایجاد کرده اند در جدول EXCEPTIONS وجود دارد.

**************************************************************

SQL> create table copy_cons as select * from MY_INFORMATIONS where rowid in (select ROW_ID from exceptions);

SQL> SELECT * FROM copy_cons

 

در این جدول اطلاعات کامل از سطرهایی که مشکل ایجاد کرده اند وجود دارد.

**************************************************************


SQL> delete MY_INFORMATIONS where rowid in (select ROW_ID from exceptions)

COMMIT;

 

با اجرای دستورات فوق، سطرهای مشکل دار از جدول مربوطه حذف می شوند.

**************************************************************

حالا می توانید با استفاده از دستور زیر کلید مورد نظرتان را بسازید:


SQL> alter table MY_INFORMATIONS add constraint MY_TAB_PK primary key (COL1, COL2, COL3, COL4);
 

**************************************************************

در نهایت می توانیم اطلاعات ایجاد شده را از دیتابیس حذف نماییم:

 
SQL> TRUNCATE TABLE EXCEPTIONS;

SQL> drop table copy_cons;

  • ۹۸/۰۳/۲۵
  • امیررضا رستنده

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی