como posso mudar o nome de uma tabela em sql db2?

estou a tentar mudar o nome de uma tabela em db2 assim

rename table schema1.mytable to schema2.mytable

mas obtendo a seguinte mensagem de erro:

the name "mytable" has the wrong number of qualifiers.. SQLCODE=-108,SQLSTATE=42601
Qual é o problema aqui?... Estou a usar a sintaxe exacta da documentação da IBM publib.

Author: WarrenT, 2013-11-15

5 answers

Não pode alterar o esquema de um dado objecto. Tens de recriá-lo.

Há várias maneiras de fazer isso:

Estas duas últimas opções apenas criam a estrutura da tabela, e você ainda precisa importar os dados. Depois de ter criado a tabela, você insere os dados de diferentes maneiras:

  • Inserir directamente

    insert into schema2.mytable select * from schema1.mytable

  • Via carregar a partir do cursor

  • através de um carregamento ou importação de um ficheiro (o ficheiro exportado na etapa anterior)
O problema são as relações externas, porque têm de ser recriadas.

Finalmente, pode criar umpseudónimo . É mais fácil, e você não tem que lidar com as relações.

 8
Author: AngocA, 2013-11-15 15:29:55

Pode mudar facilmente o nome de uma tabela com esta declaração:

RENAME TABLE SCHEMA.TABLENAME TO NEWTABLENAME;
 5
Author: Pierre, 2014-12-17 13:19:25
Não estás a mudar o nome da tabela no exemplo, estás a tentar mudar para esquemas diferentes, não é a mesma coisa. Veja a ferramentadb2move para isto.
 0
Author: Konstantin, 2013-11-15 15:14:01

E se o deixares como está e criares um pseudónimo com o novo nome e esquema.

 -1
Author: Saurabh Agrawal, 2014-02-13 06:36:31

Mudar o nome de uma tabela significa mudar o nome de uma tabela dentro do mesmo esquema .para mudar o nome de outro esquema, o db2 chama a sua alcunha:

Db2 create alias for

 -2
Author: Tom123456, 2014-04-29 13:36:38