Como criar um gatilho ou gatilho?

Se você está interessado em aprender sobre o sistema de gerenciamento de banco de dados MySQL , chegou ao ponto certo. Mais tarde, falaremos com você em detalhes sobre a programação Triggers . Isso já é um assunto avançado, por isso, se você é apenas um novato, achará interessante a leitura deste post, porque aprenderá muito.

Conceito básico de gatilho

 Primeiro, vamos com a definição de gatilho. Este é um objeto que está dentro de um banco de dados que executa uma ação quando um evento ocorre nele. Como exemplo, temos o seguinte: quando um ingresso de cinema é vendido, um assento disponível deve ser descontado. Para fazer isso, devemos inserir o seguinte código genérico:

CREATE TRIGGER nombretrigger.

{ANTES | DEPOIS}

// Ele será executado antes ou depois do evento

{INSERIR | ATUALIZAÇÃO | EXCLUIR}

// ação que acionará o gatilho

ON tablename

// nome da tabela que afetou o evento

PARA CADA LINHA

Instrução SQL que será executada posteriormente

Como criar bancos de dados?

Agora vamos criar o exemplo acima mencionado de venda de ingressos de cinema. Para isso, temos que usar o phpmyadminn de preferência. Mas também serve a qualquer software compatível com procedimentos e gatilhos armazenados. Para criar o banco de dados, devemos fazer o seguinte:

CRIAR DATABASE `sales`

Agora temos que criar 2 tabelas

Primeiro, continuamos a criar a tabela para armazenar os tickets vendidos da seguinte forma:

CREATE TABLE `
entradas` ( ` id` int (10) NOT NULL AUTO_INCREMENT,
`idevento` int (11) NOT NULL,
` nroticket` int (11) NOT NULL,
PRIMARY KEY (`id`)
) MOTOR = MyISAM CHARSET PADRÃO = latin1 AUTO_INCREMENT = 1;

Em seguida, precisamos preparar a tabela para salvar a disponibilidade de ingressos de cinema para uma função específica desta maneira:

Relacionado:  Como aumentar o zoom quando o NetBeans parece pequeno

CRIAR TABELA SE NÃO EXISTE `stock` (
` idevento` int (10) NÃO NULL,
`stockactual` int (10) NOT NULL
) MOTOR = MyISAM DEFAULT CHARSET = latin1;

CREATE TABLE `events` (
` idevento` int (10) NOT NULL AUTO_INCREMENT,
`event` int (11) varchar (200),
` date` date NOT NULL,
PRIMARY KEY (`idevento`)
) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1;

Em seguida, você deve fechar o gatilho como uma consulta SQL. Para fazer isso, recomendamos o uso do software gratuito chamado “HEIDISQL”.

Por sua vez, a instrução NEW.column_name nos mostra qual campo da operação de disparo usaremos no momento da execução. Nesse caso, será idevento , mas se houver mais, sempre devemos usar a palavra NOVO em diante.

CRIAR TRIGGER ` update_stock` APÓS INSERIR EM` entradas` PARA CADA ROW UPDATE estoque DEFINIR estoque atual = estoque atual -1 ONDE idevento = NEW.idevento


Posteriormente, devemos executar a instrução SQL e veremos que o gatilho foi criado com sucesso.

Como exemplo, entraremos na tabela de ações de 500 ingressos de cinema disponíveis para uma função. Nesse caso, não haverá resposta do acionador, pois ela foi preparada para executar quando uma inserção ocorre na tabela de entrada.

INSERIR EM “ estoque de vendas ” (`idevento`,` estoque atual`) VALORES (‘1’, ‘500’);

Como podemos testar os gatilhos?

Nesta parte do post, mostraremos como testar a programação dos Triggers . Para fazer isso, devemos assumir que vendemos o número de entrada 100 para a função 1 e depois inserir a venda realizada no banco de dados “entradas”.

INSERT INTO tickets (idevento, nroentrada) VALUES (‘1’, ‘100’);

Agora, temos que analisar o que aconteceu na respectiva tabela de ações . Nesse caso, o estoque agora tem 499 ingressos disponíveis. Isso ocorre porque a inserção na tabela de bilhete tiro e depois executado a chamada gatilho actualiza_stock .

Relacionado:  Solução para NÃO O ícone Dados móveis aparece

Se usarmos esse método, podemos ter certeza de que haverá transparência em relação à execução para o usuário e o programador.

Outro exemplo para excluir um item de um armazém é o seguinte

CREATE TRIGGER “ productos` Baja_productos` Após eliminação ON PARA CADA DELETE FROM ONDE ProductID = NEW.idproducto estoque ROW 


Pronto, isso tem sido tudo! Com essas informações, você pode expandir seu conhecimento muito mais com relação à programação de gatilhos . Até breve no próximo post!

 

Você pode estar interessado:

Deixe um comentário