Olá,

Deixa eu ver se entendi, não tenho certeza.

Ao você fazer o seguinte SQL: select * from only tbpessoa; aparece o
registro que você está querendo inserir na tabela telefone_pessoa?

Ao fazer o select acima você esta restringindo que você quer apenas os dados
da tabela tbpessoa. Ao fazer select * from tbpessoa você pega os dados da
tabela pai (tbpessoa) e da tabela filha (tbaluno).

Quando você faz uma inserção na tabela filha, os dados são visiveis para a
tabela pai (mas não estão gravados na tabela pai), estão armazenados apenas
na tabela filha.

Então:

select * from tbpessoa; (mostram os dados da tabela pai + tabela filha)

select * from only tbpessoa; (somente os dados da tabela pai (tbpessoa))

select * from tbaluno; (somente os dados da tabela tbaluno)

Acho que ficou meio confusa a explicação mas espero ter ajudado.

[]s





2008/3/19, Davi Farias <[EMAIL PROTECTED]>:
>
> Pessoal,
>
> é o seguinte estou usando herança e tenho um problema.
>
> é o seguinte tenho uma tabela de relacionamento N:M em em relaçao a pessoa
> e telefone, o erro acontece da seguinte forma depois de cadastrar um
> telefone e um aluno
> aparece os dados na tabela pessoa porem quando vou cadastrar na tabela de
> relacionamento telefone_pessoa diz q n existe o codigo da pessoa porem esta
> la na tabela de
> pessoa o codigo, fiz um teste cadastrando diretamente na tabela pessoa e
> pegou mas quero cadastrar um aluno e n uma pessoa e como é "herança"
> deveriar herdar os relacionamentos tb.
>
> alguem ajuda por favor
>
> ex.
>
> CREATE TABLE "public"."tbpessoa" (
>   "cdpessoa" SERIAL,
>   "nmpessoa" VARCHAR(50),
>   "tppessoa" INTEGER,
>   "cpf" VARCHAR(20),
>   "dtnascimento" DATE,
>   CONSTRAINT "pk_tbpessoa" PRIMARY KEY("cdpessoa")
> ) WITHOUT OIDS;
>
>
>
> CREATE TABLE "public"."tbaluno" (
>   "matricula" VARCHAR(20),
>   CONSTRAINT "pk_tbaluno" PRIMARY KEY("cdpessoa")
> ) INHERITS ("public"."tbpessoa")
> WITHOUT OIDS;
>
>
>
> CREATE TABLE "public"."telefone" (
>   "cdtelefone" SERIAL,
>   "telefone" VARCHAR(20),
>   CONSTRAINT "telefone_pkey" PRIMARY KEY("cdtelefone")
> ) WITH OIDS;
>
> ALTER TABLE "public"."telefone"
>   ALTER COLUMN "cdtelefone" SET STATISTICS 0;
>
> ALTER TABLE "public"."telefone"
>   ALTER COLUMN "telefone" SET STATISTICS 0;
>
> CREATE TABLE "public"."telefone_pessoa" (
>   "cd_pessoa" INTEGER,
>   "cd_telefone" INTEGER,
>   CONSTRAINT "telefone_pessoa_fk" FOREIGN KEY ("cd_pessoa")
>     REFERENCES "public"."tbpessoa"("cdpessoa")
>     ON DELETE NO ACTION
>     ON UPDATE NO ACTION
>     NOT DEFERRABLE,
>   CONSTRAINT "telefone_pessoa_fk1" FOREIGN KEY ("cd_telefone")
>     REFERENCES "public"."telefone"("cdtelefone")
>     ON DELETE NO ACTION
>     ON UPDATE NO ACTION
>     NOT DEFERRABLE
> ) WITH OIDS;
>
> Davi Farias Mendes
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
João Paulo
www.dextra.com.br/postgres
PostgreSQL
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a