[firebase-br] Atualização de campo

Julio F. Figueiredo tuskinhu em gmail.com
Ter Fev 4 15:14:33 -03 2014


WO,

Sim, mas o banco já está criado assim em produção PK (Material, Lote).

Estou fazendo como você falou, dou um drop na primary key, mas neste
momento ele me retorna um erro que diz que o índice está sendo usado
dizendo que existem transações ativas, portando não consigo trocar o campo,
mesmo o banco nao sendo utilizado por ninguém, somente eu fazendo testes.

Como acabar com estas transações?




________________________________________
Att,
*Julio F. Figueiredo*
*Analista de Sistemas*


2014-02-04 W O <sistemas2000profesional em gmail.com>:

> Cuando nadie esté usando la Base de Datos hazle un sweep.
>
> Además, no puedes cambiar una columna de una Primary Key sin antes borrar
> la Primary Key. Así que primero borras la Primary Key, cambias las
> columnas, y vuelves a crear la Primary Key.
>
> De todas maneras, usar un VARCHAR() como Primary Key es un error de
> concepto. Las Primary Key deberían ser subrogadas, es decir que las
> columnas que la componen se usen para la Primary Key y para nada más.
>
> Por lo tanto, lo mejor es que tu Primary Key sea una columna numérica,
> autoincremental. El número de Lote o cualquier otra columna puedes
> establecer como Unique Key si quieres, pero nunca como Primary Key.
>
> Saludos.
>
> Walter.
>
>
>
> 2014-02-04 Julio F. Figueiredo <tuskinhu em gmail.com>:
>
> > Bom dia,
> >
> > Estou fazendo uma atualização de um campo chamado de LOTE, hoje ele tem
> > varchar(12) estou passando pra varchar(24), está inserido em uma PK junto
> > com um campo Material.
> >
> > Bom, em alguns bancos ele conseguiu fazer a atualização.
> >
> > O que me está dando dor de cabeça é que em alguns bancos ao dropar o
> índice
> > ele diz que existem transações ativas.
> >
> > Como faço pra em algum momento eu matar essas transações ativas?
> >
> > Sequencia de comandos:
> >
> > CREATE DOMAIN DM_LOTE AS VARCHAR(24) CHARACTER SET WIN1252 COLLATE
> > WIN_PTBR';
> >
> > ALTER TABLE LOTES DROP CONSTRAINT INTEG_209;
> >
> > update RDB$RELATION_FIELDS set
> >            RDB$FIELD_SOURCE = 'DM_LOTE'
> >            where (RDB$FIELD_NAME = 'LOTE') and
> >           (RDB$RELATION_NAME = 'LOTES';
> >
> > ALTER TABLE LOTES ADD CONSTRAINT PK_LOTES PRIMARY KEY (MATERIAL,LOTE);
> >
> >
> >
> > ________________________________________
> > Att,
> > *Julio F. Figueiredo*
> > *Analista de Sistemas*
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em 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://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em 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://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista