Re: [pgbr-geral] PROBLEMA COM UPDATE
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
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
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