Ir ao conteúdo
  • Cadastre-se

Inserir valor automatico na chave estrangeira(trigger)


edersonneves

Posts recomendados

Estou com dificuldade para criar uma trigger para incluir o valor no campo da chave estrangeira.

tenho duas tabelas sendo uma de registro de ocorrencia que possui o campo n_bop que é auto_increment, que é chave estrangeira na outra tabela que é paciente, gostaria que ao ser inserido esse campo n_bop, tambem fosse inserido na tabela paciente, eu utilizei uma trigger so que não dar certo ele insere os valores na chave estrangeira, e os demais campos que são nome_pac, dt_nascimento_pac....etc ficam sem valores. E quando excluo a trigger os valores são inseridos normalmente so que a chave estrangeira dai e que fica sem valor na tabela paciente. Gostaria de saber si tem como inserir com trigger ou tem que ser de outra maneira?

a Trigger que criei foi essa

delimiter |

create trigger numero_bop after insert on `tbl_bol_ocorrencia`

for each row

begin

insert into `tbl_paciente` (n_bop) value (new.n_bop);

end

|

delimiter;

Tabela boletim de ocorrencia

n_bop

tipo_oc

data_oc

hi_oc

hf_oc

endereço_oc

compl_oc

bairro_oc

cidade_oc

estado_oc

historico_oc

observacao

id_guarn

Tabela paciente

d_pac

nome_pac

dt_nascimento_pac

sexo_pac

nome_mae_pac

nome_pai_pac

endereco_pac

compl_pac

bairro_pac

cidade_pac

estado_pac

tel_pac

tipo_doc_pac

numero_doc_pac

orgao_exp_pac

uf_pac

n_bop

Link para o comentário
Compartilhar em outros sites

a situação e a seguinte o campo n_bop é chave primaria na tabela boletim de ocorrencia e é auto increment, e é chave estrangeira na tabela paciente, eu gostaria de criar uma trigger para inserir o campo n_bop na tabela paciente automatico.

quando insiro dessa maneira (ou seja utilizando o insert) ele insere so a chave estrangeira e os demais valores ficam em brancos.

delimiter |

create trigger numero_bop after insert on `tbl_bol_ocorrencia`

for each row

begin

insert into `tbl_paciente` (n_bop) value (new.n_bop);

end

|

delimiter;

agora quando insiro dessa maneira(ou seja utilizando o update) ele insere todos os outros valores e a chave estrangeira fica em braco

delimiter |

create trigger numero_bop after update on `tbl_bol_ocorrencia`

for each row

begin

insert into `tbl_paciente` (n_bop) value (new.n_bop);

end

|

delimiter;

Link para o comentário
Compartilhar em outros sites

tenta o seguinte:

Create Trigger [My_Trigger] on [dbo].[tbl_bol_ocorrencia]

after INSERT as

begin

Insert Into [dbo].[tbl_paciente]([COLUNAS QUE vão RECEBER VALORES])

Select inserted.[CAMPO1],inserted.[CAMPO2],...,inserted[CAMPO_N) from inserted;

end

NOTE: se você não colocar em ([COLUNAS QUE vão RECEBER VALORES]) alguma coluna qualquer da tabela 'tbl_paciente' essa respectiva coluna nao vai receber valor... a nao ser que ela tenha uma constraint Default... alem do mais se ela for NOTNULL possivelmente vai dar pau uma vez que ele tenta inserir null como default

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!