DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Video: Curso Completo MySQL(básico)–Parte XII-Como criar uma trigger para gerar o próximo valor para chave primária

Nesta vídeo o autor explica o que é, para que serve e como utilizar este poderoso recurso disponível também no MySql.

Título:

 

Tempo: 17m20s

 

Mini resumo: Nesta vídeo aula o autor da continuidade a série sobre MySql falando sobre Triggers. Em sua última video aula o autor tratou de um assunto por vezes desconhecido por parte de quem trabalha com MySql que é o uso de procedure, com triggers a história não é muito diferente. Poucos programadores e usuários iniciantes de MySql lançam mão deste recurso. Triggers são procedimentes armazenados no servidor que são disparados mediante um evento específico que ocorre em uma tabela. Nesta vídeo o autor explica o que é, para que serve e como utilizar este poderoso recurso disponível também no MySql. Veja como criar uma trigger para gerar o próximo valor para chave primária de uma tabela no banco de dados.

 

Tecnologias utilizadas: MySql.

 

Exemplos construídos: Criação Trigger para gerar Primary Key.

 

Palavras chave: MySql, Triggers, Primary Key.





    6 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Leonardo Jose Da Costa Vargas
Olá,
Eu tive o mesmo problema que você Rodrigo, gerei a trigger, porém ao tentar inserir um registro ela não é executada.
Já reiniciei meu pc, servidor mysql, verifiquei se a trigger existe na tabela de triggers do mysql e mesmo assim ela não é executada.

segue código de criação da trigger:

DROP TRIGGER `CUSTOMER_BI`;
CREATE DEFINER=`root`@`localhost` TRIGGER `CUSTOMER_BI` BEFORE INSERT ON `customer` FOR EACH ROW
BEGIN
DECLARE ID INT;
SELECT NewCust FROM nextcust INTO ID;
UPDATE nextcust SET NewCust = NewCust + 1;
SET NEW.CustNo = ID;
END;

se puder meu ajudar ou indicar um local onde eu possa obter ajuda ficarei grato.

att,
[há +1 mês] - Responder

 

Leonardo Jose Da Costa Vargas
Estou utilizando HeidiSQL, mas também testei no Query Browser e apesar da trigger ser criada, ela não é executada.
[há +1 mês] - Responder
 

Leonardo Jose Da Costa Vargas
Segue a mensagem de erro ao executar o insert:

insert into customer (company)
values ('xxxxxxxxxxxx');

/* SQL Error (1364): Field 'CustNo' doesn't have a default value */
[há +1 mês] - Responder
 

Wesley Yamazack
Olá Leonardo, tudo bem ?

Olha só, você esta fazendo um insert em uma tabela que precisa de uma chave primária certo?

Você usou

[CODE] insert into customer (company) values ('xxxxxxxxxxxx'); [/CODE]

Porém isso irá funcionar se o teu campo CustNo for do tipo auto-incremento, senão for ele vai dar exatamente este erro: "/* SQL Error (1364): Field 'CustNo' doesn't have a default value */"... Ele esta dizendo o seguinte, Leandro eu preciso de um valor padrão para o campo CustNo


Seu código então deveria ser assim, se você não usar o auto-incremento:

[CODE] insert into customer (CustNo,company) values (99,'xxxxxxxxxxxx'); [/CODE]

Veja se ficou claro, e veja se é isso mesmo que esta acontecendo com você.

Um abraço.
[há +1 mês] - Responder
 

Leonardo Jose Da Costa Vargas
Wesley, sou muito grato a atenção que você vem me dando.

Eu achava que essa trigger por ser executada no before insert seria executada antes de efetuar o insert, ou seja, meu campo chave não precisaria estar preenchido na minha instrução insert, pois, a trigger se encarregaria de preenche-lo.

Mas como você bem explicou, eu devo passar um valor qualquer no insert para evitar o erro de not null(pk), em seguida esse campo será atualizado pela minha trigger.

Resumindo, o problema era exatamente este e sua explicação tirou minha dúvida.

Obrigado mais uma vez.

abs
[há +1 mês] - Responder
 

Wesley Yamazack
Olá Leonardo, que bom que consegui te ajudar!

Conte sempre conosco!

Um abraço
[há +1 mês] - Responder
 



Publicidade
Curso Online
Este post faz parte de:

Curso(s):
  •  Ferramentas Administrativas do MySQL

  • Autor
    Rodrigo Carreiro Mourão

    Consultor de TI especializado em Orientação e Objetos, Design Patterns e Gestão de Projetos. Instrutor certificado pela Borland e Delphi Product Certified. É sócio da RM Factory Soluções em TI e da Szeryng Traduções e Informática. Atua como Supervisor de TI do Grupo Editorial Nacional e é instrutor ...


    Space do autor
    Estatísticas
    Favorito:
    Comentários:
    Feedback:
    Utilidade:
    1   0
    [Fechar]

    Você precisa estar logado para dar um feedback.

    Clique aqui para efetuar o login
    [Fechar]


    Este post está fechado. Saiba mais sobre a assinatura MVP!
    web-03
    DevMedia  |  Anuncie  |  Fale conosco
    Hospedagem web por Porta 80 Web Hosting
    2012 - Todos os Direitos Reservados a web-03