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