Kbase P10023: What to do when you get a (1422) error.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  21/10/2008 |
|
Status: Unverified
SYMPTOM(s):
SYSTEM ERROR: Index in for recid could not be deleted. (1422)
CAUSE:
Possible entry of data when a standard index was inactive.
FIX:
Based on the definition of the index the record in question may not be a duplicate. Identify if the record is in fact unique or not.
Since one of the two records was not indexed you will need to use the recid provided in the error message to first look at that record.
for each <table name> where recid(<table name>) = <recid provided by error>.
display <table name>.
This should allow you to look at the record.
Record sufficient field information so you can structure a different query to look for records which have the same field data for the index fields which are unique.
After you have reviewed the supposed duplicate record to confirm or refute whether it is a duplicate you can choose to delete the record or modify the index definition.
To delete the record (in version 8.2 or later) use the proutil <dbname> -C idxfix command and choose option 6 which will allow you to enter the recid number to be removed.
In versions earlier than 8.2 use the following code to remove the record.
for each <table name> where recid(<table name>) = <recid provided by error>.
delete <table name>.