Once you have created a join index, you are restricted in the types of changes you can make to the join index and its underlying tables and indexes.
You cannot drop any table that participates in a join index. Likewise, you cannot use ALTER TABLE to add, drop, or modify a column that participates in a join index. In both cases, you must first drop the join index. Then you can either drop the table, or modify any columns that participate in the join index.
You can add columns to the tables that participate in a join index. However, there are restrictions on inserting data into these columns, as described in the next section.
You can drop indexes on columns not involved in the join relationship, and you can add, drop or modify nonjoined columns of tables in a join index. However, you cannot drop either the indexes on a join column or the join column itself. You need at least one index on a column involved in a predefined join relationship. It is highly desirable to have either an HG or LF index on all columns that are part of a join index.
Sybase IQ automatically applies the changes to the join index at the same time as it changes the base table. You do not need to synchronize the join index after any ALTER TABLE on nonjoined columns.
Other restrictions on ALTER TABLE for join indexes include the following:
You cannot rename a column into or out of a NATURAL join condition.
You cannot add a column that would participate in a previously specified NATURAL join.
You cannot drop a PRIMARY KEY/FOREIGN KEY relationship if it matches a join condition that is in use in a join index.
You cannot drop a NOT NULL constraint from a column that participates in a join condition.
You cannot modify the data type of a column that participates in a join condition.