wawaanjo 0 Denunciar post Postado Março 30, 2014 É possível alterar chave de uma tabela? Minha tabela tem os seguintes campos como chave: PK_BASE_OFENSORES columns: ANO, MES, GERENCIA, NOME_FORMULARIO, ID_AVALIACAO, ITEM_PONTUADO CONSTRAINT "PK_BASE_OFENSORES" PRIMARY KEY ("ANO", "MES", "GERENCIA", "NOME_FORMULARIO", "ID_AVALIACAO", "ITEM_PONTUADO") O fato é que preciso add um campo novo a essa tabela e esse campo novo deve entrar nessa chave, pois preciso de todos esses campos para garantir a unicidade das linhas na tabela. Preciso add o campo 'Comentario'. incluir o campo eu consegui. O que não consegui ainda é colocar o campo p/ fazer parte da chave. Segue o que fiz: Alter Table Base_ofensores Add Constraints Comentario_FK Foreign Key(Comentario) References Base_ofensores(ANO, MES, GERENCIA, NOME_FORMULARIO, ID_AVALIACAO, ITEM_PONTUADO); Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 30, 2014 1 COMENTARIO não me parece ser uma boa chave candidata para ser PK ... ..... Mas , para mudar uma PK eu faço : Levantar as FKs que usam esta PK, use a USER_CONSTRAINTS para isto Verifique se a nova PK é única para todos os registros DROPE AS FKS DROPE A PK RECRIE A PK RECRIE AS FKS Não esquecendo de rever todas as procedures,functions etc que fazem referencia a estas tabelas. Rever os índices. Fora as aplicações de front-end que precisariam ser revistas. Compartilhar este post Link para o post Compartilhar em outros sites
wawaanjo 0 Denunciar post Postado Março 30, 2014 Olá Motta Realmente não é comum um campo 'Comentário' ser usado na chave, porém esse campo é vai vai garantir a unicidade da informação. Nesta tabela, praticamente todos os campos se repetem. É uma tabela nova (ainda não utilizada em nenhum processo), porém já tem dados. E pra não ter que deletar e dropar tudo, eu queria alterar. Obrigado pelas dicas Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 30, 2014 Pensou na hipótese de ter uma chave artificial povoada por sequence ? A PK atual seria um index não único. Compartilhar este post Link para o post Compartilhar em outros sites
wawaanjo 0 Denunciar post Postado Março 30, 2014 Como seria Motta? Pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 30, 2014 Observação , não precisa deletar dados na tabela só as CONSTRAINTS !! Compartilhar este post Link para o post Compartilhar em outros sites
wawaanjo 0 Denunciar post Postado Março 30, 2014 Não havia pensado na Sequence. Acho que p/ meu caso onde tenho uma tabela onde quase todos os campos se repetem, é a melhor opção mesmo, colocar uma sequence e este ser a PK da tabela. Mais uma vez, obrigado pela dica. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 30, 2014 Uma chave primaria sequencial. Compartilhar este post Link para o post Compartilhar em outros sites
wawaanjo 0 Denunciar post Postado Março 30, 2014 Isso mesmo. Vou fazer isso. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 30, 2014 http://forum.imasters.com.br/topic/203261-campo-autoincremento/ http://forum.devmedia.com.br/viewtopic.php?t=70813&highlight=trigger+sequence&sid=1e2f680e3ec84cd06d324fe4ed845feb Compartilhar este post Link para o post Compartilhar em outros sites
wawaanjo 0 Denunciar post Postado Março 30, 2014 Vou ler e aprender um pouco mais sobre isso. Obrigada e parabéns pelo trabalho Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 30, 2014 Thanks a lot ... Compartilhar este post Link para o post Compartilhar em outros sites