[firebase-br] Commit em script

Márcio Milhomem firemarcio em hotmail.com
Terça Outubro 22 12:31:09 -03 2024


  1.
Adicione a coluna sem restrições: Primeiramente, você pode adicionar a coluna ID sem as restrições de NOT NULL e PRIMARY KEY. Depois, você pode popular essa coluna com valores únicos e, por fim, alterar a coluna para adicionar as restrições.

sql
Copiar código
ALTER TABLE IBPT
ADD ID INTEGER;

-- Popule a coluna ID com valores únicos
UPDATE IBPT SET ID = <valor_unico>;

-- Agora adicione as restrições
ALTER TABLE IBPT
ALTER COLUMN ID SET NOT NULL,
ADD PRIMARY KEY (ID);


  2.
Usar transações: Certifique-se de encapsular todos os comandos em uma única transação. Assim, você pode controlar o estado da tabela antes de fazer o commit.
  3.
Verifique se há triggers ou constraints: Verifique se existem triggers ou constraints na tabela que possam estar interferindo na alteração da estrutura.
  4.
Desconexão e Reconexão: Embora você tenha notado que desconectar e conectar resolve o problema, isso não é uma solução prática. O ideal é que o banco mantenha o estado atualizado após cada operação.

Ao seguir esses passos, você deve ser capaz de modificar a tabela sem intervenções manuais e sem erros.

________________________________
De: lista <lista-bounces em firebase.com.br> em nome de Carlos Wilson via lista <lista em firebase.com.br>
Enviado: terça-feira, 22 de outubro de 2024 12:25
Para: FireBase <lista em firebase.com.br>
Cc: Carlos Wilson <cwfsa1 em gmail.com>
Assunto: [firebase-br] Commit em script

boa tarde, eu mando um script de atualização do banco de dados do
cliente, porém acontece algumas coisas que não entendo, por exemplo:

DELETE FROM IBPT;

COMMIT WORK;

ALTER TABLE IBPT
ADD ID INTEGER
NOT NULL  PRIMARY KEY ;

essa tabela era uma entidade fraca que não tinha pk, agora to mudando a
estrutura dela pra criar um novo campo pk.

se eu deletei todo o conteúdo da tabela e dei commit por que ele não
aceita o proximo comando de criação do campo? dá erro de registro com
valor null, só funciona se eu desconectar do banco e em seguida conectar
novamente.

Existe um porquê? e tem como eu resolver isso? porque eu quero que os
comandos executem sem a intervenção do usuário.

--
[]'s
Carlos Wilson
Formosystem
Informática e Automação Comercial


______________________________________________
FireBase-BR (www.firebase.com.br<http://www.firebase.com.br>) - Hospedado em www.locador.com.br<http://www.locador.com.br>
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html


Mais detalhes sobre a lista de discussão lista