Re: [pgbr-geral] PROBLEMA COM UPDATE

2007-06-26 Por tôpico Mauro Lemos Júnior


Boa tarde Evandro.
 
Acredito que. se vc utilizar uma SubSelect ordernada resolverá. seu problema. 
Exemplo: 
   UPDATE  MENU  SET MENU_NIVEL1 = (aux.MENU_NIVEL1-1) from    (select   MENU_NIVEL1,   MENU_USUARIO from   MENU order by MENU_NIVEL1 ) AUXWHERE  MENU.MENU_USUARIO = AUX.MENU_USUARIO AND  MENU.MENU_USUARIO = :MENU_USUARIO AND  MENU.MENU_NIVEL1 > :MENU_NIVEL1
Espero que ajude.   Mauro Lemos Júnior
 
--
BOM DIA PESSOALTENHO UMA TABELA CHAMADA MENU COM AS SEGUINTES COLUNAS:  "menu_usuario" CHAR(20) NOT NULL,  "menu_nivel1" NUMERIC(3,0) NOT NULL,  "menu_nivel2" NUMERIC(3,0) NOT NULL,  "menu_nivel3" NUMERIC(3,0) NOT NULL,  "menu_nivel4" NUMERIC(3,0) NOT NULL,  "menu_descricao" VARCHAR(80) NOT NULL,  "menu_form" VARCHAR(30),  "menu_dll" VARCHAR(100),  "menu_imagem" NUMERIC(2,0) DEFAULT 0,  "menu_finalidade" VARCHAR(500),  "menu_abertura" NUMERIC(1,0),  CONSTRAINT "menu_pkey" PRIMARY KEY("menu_usuario", "menu_nivel1", "menu_nivel2", "menu_nivel3", "menu_nivel4"),PRECISO FAZER UM UPDATE PARA "SUBIR" O CAMPO MENU_NIVEL1 1 NÍVELQUANDO USO O CÓDIGO ABAIXO, ELA DÁ ERRO DE CHAVE DUPLICADAUPDATE MENU SET MENU_NIVEL1 = (MENU_NIVEL1 -1) WHERE 
MENU_USUARIO = :MENU_USUARIO AND MENU_NIVEL1 > :MENU_NIVEL1ACONTECE QUE O UPDATE NÃO ESTA SEGUINDO A ORDEM DA CHAVE PRIMÁRIA ENTÃO ELE ATUALIZA POR EXEMPLO O LINHA 3 ANTES DE ATUALIZAR A LINHA 2, E COMO A LINHA 2 JÁ EXISTE E AINDA NÃO FOI ATUALIZADA, ELA DÁ ERRO DE CHAVE DUPLICADAANDEI PESQUISANDO E VI QUE NO ORACLE VC PODE USAR O ORDER BY NO UPDATE, MAS NÃO ENCONTREI NADA PARA RESOLVER O PROBLEMA NO POSTGRESQLALGUÉM CONHECE ALGUMA SOLUÇÃO PARA O PROBLEMA ?EVANDRO ANDERSENDESENVOL INFORMÁTICA(43) 3323-4641POSTGRESQL 8.2.4WIN 2003Torpedo Messenger- Envie torpedos do messenger para o celular da galera. Descubra como aqui! 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] PROBLEMA COM UPDATE

2007-06-26 Por tôpico Mauro Lemos Júnior
Boa tarde Evandro.
 
Acredito que. se vc utilizar uma SubSelect ordernada resolverá. seu problema. 
Exemplo: 
   UPDATE  MENU  SET MENU_NIVEL1 = (aux.MENU_NIVEL1-1) from    (select   MENU_NIVEL1,   MENU_USUARIO from   MENU order by MENU_NIVEL1 ) AUXWHERE  MENU.MENU_USUARIO = AUX.MENU_USUARIO AND  MENU.MENU_USUARIO = :MENU_USUARIO AND  MENU.MENU_NIVEL1 > :MENU_NIVEL1
Espero que ajude.   Mauro Lemos Júnior
 
--
BOM DIA PESSOALTENHO UMA TABELA CHAMADA MENU COM AS SEGUINTES COLUNAS:  "menu_usuario" CHAR(20) NOT NULL,  "menu_nivel1" NUMERIC(3,0) NOT NULL,  "menu_nivel2" NUMERIC(3,0) NOT NULL,  "menu_nivel3" NUMERIC(3,0) NOT NULL,  "menu_nivel4" NUMERIC(3,0) NOT NULL,  "menu_descricao" VARCHAR(80) NOT NULL,  "menu_form" VARCHAR(30),  "menu_dll" VARCHAR(100),  "menu_imagem" NUMERIC(2,0) DEFAULT 0,  "menu_finalidade" VARCHAR(500),  "menu_abertura" NUMERIC(1,0),  CONSTRAINT "menu_pkey" PRIMARY KEY("menu_usuario", "menu_nivel1", "menu_nivel2", "menu_nivel3", "menu_nivel4"),PRECISO FAZER UM UPDATE PARA "SUBIR" O CAMPO MENU_NIVEL1 1 NÍVELQUANDO USO O CÓDIGO ABAIXO, ELA DÁ ERRO DE CHAVE DUPLICADAUPDATE MENU SET MENU_NIVEL1 = (MENU_NIVEL1 -1) WHERE 
MENU_USUARIO = :MENU_USUARIO AND MENU_NIVEL1 > :MENU_NIVEL1ACONTECE QUE O UPDATE NÃO ESTA SEGUINDO A ORDEM DA CHAVE PRIMÁRIA ENTÃO ELE ATUALIZA POR EXEMPLO O LINHA 3 ANTES DE ATUALIZAR A LINHA 2, E COMO A LINHA 2 JÁ EXISTE E AINDA NÃO FOI ATUALIZADA, ELA DÁ ERRO DE CHAVE DUPLICADAANDEI PESQUISANDO E VI QUE NO ORACLE VC PODE USAR O ORDER BY NO UPDATE, MAS NÃO ENCONTREI NADA PARA RESOLVER O PROBLEMA NO POSTGRESQLALGUÉM CONHECE ALGUMA SOLUÇÃO PARA O PROBLEMA ?EVANDRO ANDERSENDESENVOL INFORMÁTICA(43) 3323-4641POSTGRESQL 8.2.4WIN 2003Verificador de Segurança do Windows Live OneCare: remova já o lixo do seu PC! Saiba mais! 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PROBLEMA COM UPDATE

2007-06-20 Por tôpico Leandro Guimaraes Faria Corcete DUTRA
Em Qua, 2007-06-20 às 10:19 -0300, Evandro (GMAIL) escreveu:
> BOM DIA PESSOAL

Bom dia, mas por que gritas?


> TENHO UMA TABELA CHAMADA MENU COM AS SEGUINTES COLUNAS:
> 
>   "menu_usuario" CHAR(20) NOT NULL, 
>   "menu_nivel1" NUMERIC(3,0) NOT NULL, 
>   "menu_nivel2" NUMERIC(3,0) NOT NULL, 
>   "menu_nivel3" NUMERIC(3,0) NOT NULL, 
>   "menu_nivel4" NUMERIC(3,0) NOT NULL, 

Está parecendo erro de modelagem.  Qual a idéia nesses níveis?


> PRECISO FAZER UM UPDATE PARA "SUBIR" O CAMPO MENU_NIVEL1 1 NÍVEL
> QUANDO USO O CÓDIGO ABAIXO, ELA DÁ ERRO DE CHAVE DUPLICADA
> 
> UPDATE MENU SET MENU_NIVEL1 = (MENU_NIVEL1 -1) WHERE MENU_USUARIO
> = :MENU_USUARIO AND MENU_NIVEL1 > :MENU_NIVEL1
> 
> ACONTECE QUE O UPDATE NÃO ESTA SEGUINDO A ORDEM DA CHAVE PRIMÁRIA

Então coloque a chave como deferida.


-- 
Leandro Guimarães Faria Corcete DUTRA  <[EMAIL PROTECTED]>
Atech Fundação Aplicação de Tecnologias Críticas  SP, BR
msnim:[EMAIL PROTECTED]
skype:leandro.gfc.dutra?chat +55 (11) 3040 7300 r151


- - - - -

Politica de Privacidade: Esta mensagem pode conter informacao confidencial e/ou 
privilegiada. Se voce nao for o destinatario ou a pessoa autorizada a receber 
esta mensagem, nao pode usar, copiar ou divulgar as informacoes nela contidas 
ou tomar qualquer acao baseada nessas informacoes. Se voce recebeu esta 
mensagem por engano, por favor avise imediatamente o remetente, respondendo o 
e-mail e em seguida apague-o. Agradecemos sua cooperacao.

Privacy Policy: This message may contain confidential and/or privileged 
information. If you are not the addressee or authorized to receive this for the 
addressee, you must not use, copy, disclose or take any action based on this 
message or any information herein. If you have received this message in error, 
please advise the sender immediately by reply e-mail and delete this message. 
Thank you for your cooperation.___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral