Informix Error -867: Cannot generate new rowid.
Cause and resolution
Cannot generate new rowid.
See the accompanying ISAM error for more information. A table cannot hold more than 4,294,967,295 records if it has serial or rowid columns.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-867 fires when a table with SERIAL-family or ROWID columns reaches the hard row-count ceiling
those mechanisms can address — per the official guidance, a table with serial or rowid columns
can't hold more than 4,294,967,295 records.
- A table's row count reaching 4,294,967,295, per the official guidance — the direct, named ceiling.
- An underlying ISAM-level condition contributing to the failure, per the official guidance's pointer to checking the accompanying ISAM error for additional detail beyond the row-count ceiling itself.
Solutions / Resolution
- Check the accompanying ISAM error code, per the official guidance, for additional detail.
- Confirm the table's actual row count against the 4,294,967,295 ceiling:
SELECT COUNT(*) FROM orders; - If the ceiling has genuinely been reached, archive or partition off older data to bring the active table's row count back under the limit, since there's no way to raise this ceiling directly — it's a structural limit of the serial/rowid mechanism itself.
- Consider whether the table genuinely needs a
SERIAL/ROWID-based identifier at this scale, or whether a different key strategy (a composite key, aBIGINTsequence managed differently) would avoid the ceiling for a table expected to grow this large.
Examples
Checking the table's row count
SELECT COUNT(*) FROM orders;
Compare against 4,294,967,295 to confirm whether the ceiling has actually been reached.
Diagnostic Checks
- Check the accompanying ISAM error code.
- Confirm the table's row count against the 4,294,967,295 ceiling.
Related Errors / Related Topics
- -593 — "Cannot specify default value for SERIAL or SERIAL8 or BIGSERIAL column." A related
SERIAL-family restriction, in theDEFAULTclause context rather than the row-count ceiling.
A hard, structural row-count ceiling for tables with serial/rowid columns — archive older data, or reconsider the key strategy for a table expected to grow this large.