Em 20-09-2012 10:23, Moisés P. Sena escreveu:
> Bom dia pessoal!!
>
> estou usando postgresql 9.2.
>
> Tenho a seguinte estrutura:
>
> create table usuario (
>      email varchar(100) not null primary key,
>      senha varchar(255) not null
> );
>
> create table cliente (
>      nome varchar(100) not null,
>      cpf text not null
> ) inherits (usuario);
>
> tenho um usuario:
>
> moi=# insert into usuario (email, senha) values ('[email protected]
> <mailto:[email protected]>', '123456');
> INSERT 0 1
>
> quero transformar este usuario em cliente. so que a query abaixo nao
> funciona:
>
> moi=# update cliente set nome = 'Usuario da Silva', cpf = 'xx' where
> email = '[email protected] <mailto:[email protected]>';
> UPDATE 0

Muita gente respondeu mas ninguém explicou o fato.
Note que seu INSERT foi na tabela usuario.

INSERTs não são propagados para as tabelas herdeiras.
O seu UPDATE deveria ser feito sobre a tabela pai.

Note que o UPDATE não moverá a linha para a tabela herdeira também.

Você terá de escrever uma função/gatilho para resolver isso ou fazer 
todos os passos por fora.

[]s

__________________________________
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: [email protected]
______________________________
FREE SOFTWARE SOLUTIONS
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a