Se vc nao criou a chave estrangeira com a clausula "on delete cascade", vc
nao vai precisar deletar todos os dados das tabelas q se relacionam com
dados da sua tabela principal.

Uma forma seria:

delete from <tabela_estrangeira>
where <id_tabela_estrangeira> = (
   select <id_tabela_estrangeira>
   from tb_colaborador
   where nm_colaborador = '$nome_colaborador' or login =
'$login_colaborador'
);

Vc deve fazer isto para todas as tabelas que se relacionam com
a "tb_colaborador".

Vai ficar meio lento se sua tabela tiver muitos dados, mas resolve seu
problema

On 2/8/07, Milena Leite <[EMAIL PROTECTED]> wrote:

Eu tenho cinco tabelas e relaciono elas através da palavra *references *não
sei se esta certo, quando comecei a fazer esse sistema não sabia nada de
PostgreSQL e muito menos de PHP e ainda tive que fazer tudo por um script
então é bem possivel mesmo que tenha erros..

tem uma outra tabela a qual uso dados desta que passei..

$resultado_andamento = pg_query($connect, "CREATE TABLE
tb_andamento(id_andamento SERIAL NOT NULL, id_tarefa integer REFERENCES
tb_tarefa, id_colaborador integer REFERENCES tb_colaborador, data date,
hora_inicio time, hora_fim time, comentario varchar(300), PRIMARY
KEY(id_andamento))");

será que tá certo !?



Em 08/02/07, joao cosme de oliveira junior <[EMAIL PROTECTED]>
escreveu:
>
> na criacao da tabela
> pelo q eu estou vendo vc nao esta relacionando as tabelas, se e q esta
> tabela
> logicamente possui relacionamentos
>
> Em Quinta 08 Fevereiro 2007 16:39, Milena Leite escreveu:
> > Bem, estou fazendo tudo atraves de script, por causa de um problema
> que deu
> > no servidor..então criei da seguinte forma:
> >
> > $resultado_colaborador = pg_query($connect, "CREATE TABLE
> > tb_colaborador(id_colaborador SERIAL NOT NULL, nm_colaborador
> varchar(80),
> > email varchar(50), nivel integer, login varchar(30), senha
> varchar(100),
> > PRIMARY KEY(id_colaborador))");
> >
> > Fiz apenas isso...
> >
> > *João* esse código eu coloco na criação da tabela ou qaundo eu vou
> deletar
> > alguma informação ?
> >
> >
> > Em 08/02/07, joao cosme de oliveira junior < [EMAIL PROTECTED]>
> >
> > escreveu:
> > > isso e quando vc cria suas constraints na tabela
> > >
> > > constraint nome (cod_tabela) references tabela on delete cascade;
> > >
> > > Em Quinta 08 Fevereiro 2007 16:20, Milena Leite escreveu:
> > > > Boa Tarde !
> > > >
> > > > Então acho que: ou eu configurei errado ou esta dando outro erro
> com
> > > > relação a isso..
> > > >  vou colocar o erro aqui..
> > > >
> > > > *Warning*: pg_query()
> > > > [function.pg-query<
> > >
> > > http://192.168.0.29/teste/C%C3%B3pia%20de%20SISTEMA/func
> > >
> > > >tion.pg-query>]: Query failed: ERROR: update or delete on
> > >
> > > "tb_colaborador"
> > >
> > > > violates foreign key constraint "tb_andamento_id_colaborador_fkey"
> on
> > > > "tb_andamento" DETAIL: Key (id_colaborador)=(10) is still
> referenced
> > >
> > > from
> > >
> > > > table "tb_andamento". in *D:\Inetpub\teste\Cópia de
> > > > SISTEMA\executa.php*
> > >
> > > on
> > >
> > > > line *19*
> > > > Ocorreu um erro!
> > > >
> > > >
> > > > o que sera ?
> > > >
> > > > Em 08/02/07, Ulisses <[EMAIL PROTECTED]> escreveu:
> > > > >  Boa tarde!
> > > > >
> > > > > Se você configurou a chave estrangeira corretamente, não vai ter
> > > > > problema. Manda o comando para deletar o registro da tabela
> Mestre,
> > >
> > > que
> > >
> > > > > os registros da Tabela Detalhe vão ser excluídos também.
> > > > >
> > > > > Boa sorte.
> > > > >
> > > > > Ulisses
> > > > >
> > > > >  ----- Original Message -----
> > > > > *From:* Milena Leite <[EMAIL PROTECTED]>
> > > > > *To:* Grupo de Usuários do PostgreSQL no
> > > > > Brasil<[email protected]> *Sent:* Thursday, February
> 08,
> > >
> > > 2007
> > >
> > > > > 3:50 PM
> > > > > *Subject:* [PostgreSQL-Brasil] deletar chave estrangeira
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Olá,
> > > > >
> > > > >
> > > > > Queria saber como faço para excuir um dado que é chave
> > >
> > > estrangeira..assim
> > >
> > > > > como o drop cascade quando vamos deletar tabelas...
> > > > >
> > > > > meu código esta assim:
> > > > >
> > > > > delete
> > > > > from tb_colaborador
> > > > > where nm_colaborador = '$nome_colaborador' or login =
> > > > > '$login_colaborador'
> > > > >
> > > > > []s
> > > > >
> > > > > --
> > > > > Milena Leite
> > > > >
> > > > > ------------------------------
> > > > >
> > > > > _______________________________________________
> > > > > 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
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > 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
> > >
> > > _______________________________________________
> > > 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
> _______________________________________________
> 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
>



--
Milena Leite
_______________________________________________
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




--
Joe Rabelo
Programador Senior
www.ideavalley.com.br
_______________________________________________
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

Responder a