Re: Undroppable columns in table
Posted in 2014
Not is BUG - http://www-01.ibm.com/support/docview.wss?uid=swg21182308
CAUSE
To allow logical restore of a table, the archecker table level restore command
alters the table to be restored by adding two extra columns that hold the
original table's rowid and partnum information. When the restore of the table
is complete, the table is altered again to drop the two columns.
The extra column names may have a number of different suffixes if any of the
tables in the archecker table level restore schema file contained columns with
the names ifx_tlr_rowid and ifx_tlr_partnum. For simplicity, this document
assumes that the two columns added by the archecker table level restore
command are called ifx_tlr_rowid and ifx_tlr_partnum.
In some cases, the table level restore command may exit before completing the
restore, leaving behind the two working columns. In that case, the next time
the table level restore command is run to restore the same table, you will get
the error message. The error message is to prevent restoring to a table that
may have only partially restored data (possible if any of the ifx_tlr_rowid or
ifx_tlr_partnum column values have non-null data).
SOLUTION
This error message is normal under the circumstances described. The product is
designed to work this way.
WORKAROUND
You need privileges as user informix to administer the database.
You need to identify the table(s) in the error message.
You can resolve the error in one of two ways. You must decide if it is safe to
drop the table and have the archecker table level restore command recreate the
table, or if it is preferable to alter the table to drop the extra columns.
If dropping the table, run the appropriate drop command for the table in
dbaccess:
DROP TABLE table_name ;
table_name
the table in the error message
If altering the table, run the following sql statements in dbaccess for each
table being altered. (Be sure to substitute the correct column names if the
working column names added by the archecker table level restore command are
not ifx_tlr_rowid and ifx_tlr_partnum.)
DELETE FROM table_name WHERE ifx_tlr_rowid IS NOT NULL;
ALTER TABLE table_name DROP (ifx_tlr_rowid, ifx_tlr_partnum);
Run the archecker table level restore command.