Gilberto Godoy <[EMAIL PROTECTED]> escreveu: Caro Oswaldo agradeço pela sua
cordialidade em esclarecer a minha dúvida. Agora, respondendo aos seus
questionamentos:
1- Os campos cliente_id, tipoatend_id e funcionario_id da tabela
atendimentostemp são chaves extrangeiras sim.
2- O comando abaixo, roda OK e informa que foram atualizados os 12.080
registros. Contudo, estes registros não aparecem na tabela - a coluna
funcionario_id da tabela atendimentostemp estranhamente permanece em branco.
(Preferi fazer UPDATES separados para cada coluna afim de observar
isoladadamente cada resultado):
UPDATE atendimentostemp
SET funcionario_id =
(SELECT id FROM funcionarios
WHERE funcionarios.nomefuncionario= atendimentostemp.nomefuncionario);
Pelo que entendi de sua explicação o campo permanece em branco, é isso? Se for
este o caso muito provavelmente o SELECT não está retornando nada. Talvez
esteja colocando NULL no campo funcionario_id em todas as linhas.
Faça o seguinte teste:
SELECT DISTINCT funcionarios.id FROM atendimentostemp
JOIN funcionarios
ON (funcionarios.nomefuncionario =
atendimentostemp.nomefuncionario);
3- Por outro lado, o comando abaixo, também roda OK, porém informa que foram
atualizados 0 registros.
UPDATE atendimentostemp
SET funcionario_id = funcionarios.id
FROM funcionarios
WHERE atendimentostemp.nomefuncionario= funcionarios .nomefuncionario;
Tudo indica que este comando está correto.
4- Ou seja, no primeiro comando a cláusula WHERE é TRUE e no segundo é FALSE.
(???).
Não.
Nos dois comandos inverti a ordem dos parâmetros da cláusula WHERE e os
resultados são iguais aos já decritos.
Agradeço pela orientação e aproveito para desejar a voce e a todos da lista um
feliz 2007.
[]s
Osvaldo
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/ _______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios