Comando DROP TABLE: mudanças no comportamento de CASCADE para tabelas híbridas (pendente)

Atenção

Essa mudança de comportamento está no pacote 2025_03.

Para saber o status atual do pacote, consulte Histórico do pacote.

Quando esse pacote de mudança de comportamento está ativado, a configuração padrão do parâmetro CASCADE/RESTRICT é diferente para as tabelas híbridas. Essa alteração não se aplica às tabelas padrão.

Antes da mudança:

Quando você descarta uma tabela híbrida sem especificar RESTRICT ou CASCADE e a tabela híbrida tem uma relação de chave primária/chave estrangeira ou chave exclusiva/chave estrangeira com outra tabela, o comando DROP TABLE é bem-sucedido.

O comportamento padrão é CASCADE.

CREATE OR REPLACE HYBRID TABLE ht1(
  col1 NUMBER(38,0) NOT NULL,
  col2 NUMBER(38,0) NOT NULL,
  CONSTRAINT pkey_ht1 PRIMARY KEY (col1, col2));

CREATE OR REPLACE HYBRID TABLE ht2(
  cola NUMBER(38,0) NOT NULL,
  colb NUMBER(38,0) NOT NULL,
  colc NUMBER(38,0) NOT NULL,
  CONSTRAINT pkey_ht2 PRIMARY KEY (cola),
  CONSTRAINT fkey_ht1 FOREIGN KEY (colb, colc) REFERENCES ht1(col1,col2));

DROP TABLE ht1;
Copy

O comando DROP TABLE é bem-sucedido sem nenhum erro.

Após a mudança:

Quando você elimina uma tabela híbrida sem especificar a opção RESTRICT ou CASCADE e a tabela híbrida tem uma relação de chave primária/chave estrangeira ou chave exclusiva/chave estrangeira com outra tabela, o comando DROP TABLE falha com um erro.

O comportamento padrão é RESTRICT.

Por exemplo:

DROP TABLE ht1;
Copy
SQL compilation error:
Cannot drop the table because of dependencies

O comando DROP TABLE falha nesse caso. Se necessário, você pode substituir o comportamento padrão especificando CASCADE no comando DROP TABLE.

DROP TABLE ht1 CASCADE;
Copy

Como alternativa, nesse caso, você poderia descartar a tabela dependente ht2 primeiro e, em seguida, descartar a tabela ht1.

Ref: 1741