Мы не можем отключить индекс, если только он не является индексом на основе функций.
SQL> alter index i42 disable;
alter index i42 disable
*
ERROR at line 1:
ORA-02243: invalid ALTER INDEX or ALTER MATERIALIZED VIEW option
SQL>
Мы можем сделать его непригодным для использования, но это имеет довольно неприятный побочный эффект:
SQL> alter index i42 unusable;
Index altered.
SQL> insert into t42 values (sysdate, 6, 'FOX IN SOCKS');
insert into t42 values (sysdate, 6, 'FOX IN SOCKS')
*
ERROR at line 1:
ORA-01502: index 'APC.I42' or partition of such index is in unusable state
SQL>
Просто чтобы доказать точку зрения на индексы на основе функций:
SQL> create index f42 on t42(initcap(name))
2 /
Index created.
SQL> alter index f42 disable;
Index altered.
SQL> insert into t42 values (sysdate, 6, 'MR KNOX')
2 /
insert into t42 values (sysdate, 6, 'MR KNOX')
*
ERROR at line 1:
ORA-30554: function-based index APC.F42 is disabled
SQL>
Я думаю, что это исключает отключение индексов для ваших целей. Если вы хотите работать с таблицей без индексов, вам нужно их удалить. Имеет ли это смысл, зависит от специфики вашего случая, как я сказал в мом ответе на ваш предыдущий вопрос....
Что касается ограничений, мы не можем удалить индекс, который используется для обеспечения уникального ограничения. Однако мы можем отказаться от ограничения, но оставить индекс на месте. В этом случае, если индекс уникален, он все равно будет обеспечивать целостность:
SQL> create unique index i42 on t42(id);
Index created.
SQL> alter table t42 add constraint t42_pk primary key (id);
Table altered.
SQL> insert into t42 values (sysdate, 5, 'MAISIE');
1 row created.
SQL> r
1* insert into t42 values (sysdate, 5, 'MAISIE')
insert into t42 values (sysdate, 5)
*
ERROR at line 1:
ORA-00001: unique constraint (APC.T42_PK) violated
SQL> alter table t42 drop constraint t42_pk;
Table altered.
SQL> insert into t42 values (sysdate, 5, 'MAISIE');
insert into t42 values (sysdate, 5, 'MAISIE')
*
ERROR at line 1:
ORA-00001: unique constraint (APC.I42) violated
SQL>
person
APC
schedule
23.11.2013