Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Agro - PIMS IND - MI - Update failed - Manutenção Industrial

time.png Tempo aproximado para leitura: 00:01:40 min

Dúvida
Ao tentar excluir apontamento de inatividade o Sistema apresenta erro e não exclui o mesmo.

Ambiente
TOTVS Agro - TOTVS Agro - Bioenergia - Controle Manutenção Industrial - MI – 12.1.2412

Solução
Realize o passo a passo dos scripts. Oracle SQL:

- Primeiro script vai realizar o comando de retirar a chave.

BEGIN
    FOR c IN (
        SELECT constraint_name, constraint_type
        FROM user_constraints
        WHERE table_name = 'MCPMOINAT'
          AND constraint_type IN ('P', 'R', 'U') -- P: Primary, R: Foreign, U: Unique
    ) LOOP
        EXECUTE IMMEDIATE 'ALTER TABLE MCPMOINAT DROP CONSTRAINT ' || c.constraint_name;
    END LOOP;
END;
/

 

- Segundo script vai incluir novamente a chave;

alter table MCPMOINAT

add constraint PK_MCPMOINAT primary key (ID_MOINAT);

alter table MCPMOINAT
add constraint CFK_MOINAT__FUNCI foreign key (ID_FUNCI)
references MCPFUNCI (ID_FUNCI);

alter table MCPMOINAT
add constraint CFK_MOINAT__MOTINAT foreign key (MOT_CODIGO)
references MCPMOTINAT (MOT_CODIGO);

alter table MCPMOINAT
add constraint CFK_MOINAT__ORDEM foreign key (EMP_CODEMP, ORD_CODOS)
references MCPORDEM (EMP_CODEMP, ORD_CODOS);

- Caso não permita a criação das PKs.

Esses comandos SQL têm como objetivo resetar e reatribuir novos valores únicos para a chave primária id_moinat da tabela mcpmoinat, utilizando uma sequência fnovasequencia para gerar novos valores.

1. Backup da tabela;

create table mcpmoinat_bck as select * from mcpmoinat;
  • Cria uma cópia de segurança da tabela mcpmoinat, chamada mcpmoinat_bck.

2. Remoção de restrições e índices existentes;

alter table mcpmoinat drop constraint pk_mcpmoinat;

drop index pk_mcpmoinat;
  • Remove a constraint de chave primária da tabela.
  • Remove o índice associado à chave primária (caso exista).

3. Criação de coluna auxiliar e cópia do ID atual;

alter table mcpmoinat add id_moinat_bck number(12);

update mcpmoinat set id_moinat_bck = id_moinat;
  • Cria uma nova coluna id_moinat_bck para guardar os valores antigos do ID.
  • Copia os valores da chave primária antiga para essa nova coluna.

4. Zerar os valores atuais do ID;

update mcpmoinat set id_moinat = 0;
  • Zera os valores da coluna id_moinat para permitir a reatribuição de novos IDs.

5. Zerar a sequência associada ao ID;

delete sequencia where upper(seq_tabela) = 'MCPMOINAT';

commit;
  • Remove o controle atual da sequência (gerenciador de IDs automáticos).
  • O commit salva todas as mudanças feitas até aqui no banco.

6. Criação da procedure para atualizar os Ids;

create or replace procedure updateid_moinat as

...
end updateid_moinat;
  • Cria uma procedure que:
  • Percorre todos os registros ordenados por id_moinat_bck.
  • Para cada registro, gera um novo valor de id_moinat usando a função fnovasequencia.

7. Execução da procedure;

call updateid_moinat();
  • Executa a procedure criada e reatribui os IDs únicos para cada registro na tabela.

8. Restauração da chave primária;

alter table mcpmoinat add constraint pk_mcpmoinat primary key(id_moinat);
  • Recria a constraint de chave primária com os novos valores de id_moinat.

9. Limpeza.

alter table mcpmoinat drop column id_moinat_bck;

drop procedure updateid_moinat;
  • Remove a coluna auxiliar que guardava os IDs antigos.
  • Exclui a procedure que foi usada para atualizar os IDs.

Este script serve para:

  • Resetar os IDs da tabela mcpmoinat.
  • Atribuir novos IDs únicos, sem perder o histórico (pois ele é salvo em backup).
  • Garantir que os novos IDs não colidam com os antigos.
Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _