logo DevMedia  
Home Entenda o site Revistas Canais Cursos Palestras Suporte Fórum +Serviços Assine Compre Créditos

Edição do Mês
  Fórum DevMedia
Fórum de Discussão
Conheça também o NOVO fórum da DevMedia, no endereço: www.devmedia.com.br/forum
O novo fórum possui diversas vantagens! Saiba mais em
www.devmedia.com.br/articles/viewcomp.asp?comp=14726
Estamos sempre trabalhando na melhora do site como um todo! Bons códigos!
Equipe DevMedia

 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos  RegistrarRegistrar   
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 
Edição do Mês

Como criar uma Trigger de inserção?
 
Novo Tópico   Responder Mensagem    Fórum DevMedia - Índice do Fórum -> MySQL
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
junior-programador
Membro Junior


Registrado em: Terça-Feira, 25 de Setembro de 2007
Mensagens: 52

MensagemEnviada: Seg Ago 31, 2009 9:51 am    Assunto: Como criar uma Trigger de inserção? Responder com Citação

Olá amigos do fórum, estou com uma dúvida, na qual já pesquisei, mas não consegui fazer o que preciso.
Tenho duas tabelas
TBEmissora
id_emissora
nome_emissora

TBUsuario
id_usuario
nome_usuario
idemissora_usuario

Como fazer uma trigger que na hora que eu inserir uma nova emissora a trigger me cadastra um novo usuario com um nome padrão, pois quando o usuário entra no sistema ele deve primeiro selecionar a emissora
Por exemplo o usuario seria
login - usuario
senha - usuario
e o id da nova emissora


---------

O mesmo acontece no cadastro de bairros,
como faço na trigger para quando eu cadastrar uma cidade nova, essa trigger inserir no banco de dados do bairro um novo bairro por exemplo com nome centro (nome da cidade inserida)

tbcidade
id_cidade
nome_cidade

tbbairro
id_bairro
nome_bairro
idcidade_bairro

Obrigado aos amigos que puderem me ajudar.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
emerson.en
Membro Senior


Registrado em: Terça-Feira, 16 de Março de 2004
Mensagens: 2503
Localiza?: São Paulo - SP - Brasil

MensagemEnviada: Seg Ago 31, 2009 4:10 pm    Assunto: Responder com Citação

tente assim:

C?o:
create trigger ai_emissora
after insert on tbemissora
for each row
begin
  insert into tbusuario (nome_usuario, senha, idemissora_usuario) values ('user', 'password', new.id_emissora);
end


C?o:
create trigger ai_cidade
after insert on tbcidade
for each row
begin
  insert into tbbairro (nome_bairro, idcidade_bairro) values ('Centro', new.id_cidade);
end

_________________
Ao postar dúvidas informe sempre o SGBD e versão, linguagem utilizada, componentes de conexão/acesso e demais informações pertinentes ao problema...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email MSN Messenger
junior-programador
Membro Junior


Registrado em: Terça-Feira, 25 de Setembro de 2007
Mensagens: 52

MensagemEnviada: Seg Ago 31, 2009 5:26 pm    Assunto: Continuando na criação da trigger Responder com Citação

Amigo emerson.en
Minha trigger funcionou assim

C?o:

begin
      Insert Into tbusuario(
               nome_usuario,
                senha_usuario,
                login_usuario,
                idemissora_usuario)
            VALUES
                ('PRINCIPAL',
                 'usuario',
                 '123mudar',
                 new.id_emissora);
               
   end


Mas será possivel inserir li no PRINCIPAL, ele inserir a palavra PRINCIPAL mais o nome da emissora que cadastrei, por exemplo assim
PRINCIPAL (MASTERFM)

Aguardo retorno amigo.
Obrigado.




emerson.en escreveu:
tente assim:

C?o:
create trigger ai_emissora
after insert on tbemissora
for each row
begin
  insert into tbusuario (nome_usuario, senha, idemissora_usuario) values ('user', 'password', new.id_emissora);
end


C?o:
create trigger ai_cidade
after insert on tbcidade
for each row
begin
  insert into tbbairro (nome_bairro, idcidade_bairro) values ('Centro', new.id_cidade);
end
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
emerson.en
Membro Senior


Registrado em: Terça-Feira, 16 de Março de 2004
Mensagens: 2503
Localiza?: São Paulo - SP - Brasil

MensagemEnviada: Seg Ago 31, 2009 5:47 pm    Assunto: Responder com Citação

é possível, sim. mas vai depender do comando aceito no MySQL. eu uso SQL Server e Firebird, portanto não sei exatamente como concatenar no MySQL.

tente assim:
C?o:
begin
      Insert Into tbusuario(
               nome_usuario,
                senha_usuario,
                login_usuario,
                idemissora_usuario)
            VALUES
                ('PRINCIPAL (' + new.nome_emissora + ')',
                 'usuario',
                 '123mudar',
                 new.id_emissora);
               
   end


ou assim:
C?o:
begin
      Insert Into tbusuario(
               nome_usuario,
                senha_usuario,
                login_usuario,
                idemissora_usuario)
            VALUES
                ('PRINCIPAL (' || new.nome_emissora || ')',
                 'usuario',
                 '123mudar',
                 new.id_emissora);
               
   end


note que a única diferença é o operador de concatenação ('+' ou '||').
_________________
Ao postar dúvidas informe sempre o SGBD e versão, linguagem utilizada, componentes de conexão/acesso e demais informações pertinentes ao problema...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email MSN Messenger
junior-programador
Membro Junior


Registrado em: Terça-Feira, 25 de Setembro de 2007
Mensagens: 52

MensagemEnviada: Seg Ago 31, 2009 9:17 pm    Assunto: Como criar trigger inserção? Responder com Citação

Emerson, infelizmente, não deu, da erro na hora de inserir nas duas opções.

Aguardo retorno.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
junior-programador
Membro Junior


Registrado em: Terça-Feira, 25 de Setembro de 2007
Mensagens: 52

MensagemEnviada: Seg Ago 31, 2009 9:40 pm    Assunto: Como criar trigger inserção (CONCLUÍDO) Responder com Citação

Amigo Emerson, consegui, dando uma olhada na net, veja como ficou

BEGIN
Insert Into tbbairro(
nome_bairro,
cep_bairro,
idcidade_bairro)
VALUES
(CONCAT('CENTRO (',new.nome_cidade,')'),
'00.000-00',
new.id_cidade);
END

Fiz uma concatenação dos dois resultados, funcionou perfeito, antes quero agradecer sua atenção.
Valeu brother


Júnior
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    Fórum DevMedia - Índice do Fórum -> MySQL Todos os horários são GMT - 3 Hours
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibído.
Responder Tópicos Proibído
Editar Mensagens: Proibído.
Excluir Mensagens: Proibído.
Votar em Enquetes: Proibído.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB