acho melhor dropar a constraint e fazer ela com  a clausula on delete
Em Quinta 08 Fevereiro 2007 17:30, Joe Rabelo escreveu:
> 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
_______________________________________________
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