Informix Error -584
-584 Cannot rename system catalog.
This RENAME TABLE statement cannot be carried out because it would rename one of the tables that make up the system catalog. The names of these tables cannot be changed; the database server uses them.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-584 fires when RENAME TABLE targets one of Informix's own system-catalog tables (systables,
syscolumns, and the rest of the sys* catalog) — the server depends on these exact names
internally, so they can never be renamed.
RENAME TABLEissued directly against asys*catalog table, per the official guidance — the direct, only cause.- A misunderstanding of what's actually being renamed, if the intended target was an application table with a similar or catalog-like name rather than the real catalog table.
- Generated/templated DDL applying a uniform rename pattern across a list of table names,
where the list wasn't filtered to exclude
sys*catalog tables.
Solutions / Resolution
- Don't attempt to rename system-catalog tables — per the official guidance, this is a fixed restriction with no workaround, since the server's internal queries depend on these exact names.
- Confirm the intended target is actually the application table meant, if the rename was aimed at something else with a similarly catalog-like name.
Examples
The disallowed attempt
RENAME TABLE systables TO my_systables;
-- -584: systables is a system-catalog table
Diagnostic Checks
- Confirm the table named in the
RENAME TABLEstatement is asys*catalog table (owned byinformix, persystables) rather than an application table with a similar name.
Related Errors / Related Topics
- -511 — "Cannot modify table-name." The same system-catalog protection extended to direct DML writes, rather than a rename.
- -521 — "Cannot lock system catalog table-name." The same protection extended to explicit locking.
- -585 — "Cannot rename column in system catalog." The same restriction applied to a column rename rather than a table rename.
There's no workaround — system-catalog table names are fixed and depended on internally by the server.