Ir para o conteúdo
the one

[Duvida] Eliminar dois registos de duas tabelas

Mensagens Recomendadas

the one    0
the one

Boa tarde a todos .

O que me trás por cá hoje é o seguinte :

Tenho numa base de dados duas tabelas relacionadas (professores e utilizadores) , onde o professor é obrigatoriamente utilizador, mas o utilizador pode não ser professor .

Ao relacionar as tabelas, na conversão do convencional para o relacional , a tabela professores , ganhou o campo chave primaria da tabela utilizadores (id_user) .

A minha duvida reside na eliminação dos dados . Como é que elimino da base de dados os registos do utilizador e professor, se estão em tabelas diferentes ?

 Delete * From professores, utilizadores Where professores.id_user = utilizadores.id_user and nomeprof = @nome"

Nota que "@nome" é o campo que está numa textbox .

Obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    77
M6

Isso é um problema típico de "cleaning".

Tens de detectar os duplicados e tal faz-se, normalmente, através da comparação de alguns campos. Os campos escolhidos devem os que melhor identificam, univocamente, um individuo.

Por exemplo, se tiveres o número de bi ou nif são, tipicamente, bons candidatos.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jsWizard    6
jsWizard

se criares a FK entre as duas tabela com a opção CASCADE DELETE, ao aliminares um utilizador que é professor, o registo do professor será automaticamente eliminado.

claro que se o registo da tabela de professores tiver outras relações dependentes, isto pode não assim tão directo, já que não vai ser possivel eliminar o registo "professor".

fica a dica!

inté!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
the one    0
the one

Tenho a tabela professores ligado à area , mas não é dependente desta .

Posso eliminar o professor , que a area continua .

Como faco isso do CASCADA DELETE ? :s

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    77
M6

Não posso fazer a comparação pelo id ?

Não porque os ids identificam o registo na base de dados e não o objecto que um registo representa.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jsWizard    6
jsWizard

Como faco isso do CASCADA DELETE ? :s

cascade delete é uma "opção" na criação de FKs.

a definição de FK pode depender da base de dados que estás a usar..

google por "alter table add constraint cascade delete" e encontras rapidamente a forma de definir a FK.

inté!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade