Gatilhos sqlite

Gatilhos sqlite
A reação é sempre desencadeada por alguma ação executada por qualquer pessoa ou coisa. Os gatilhos do SQLite são os métodos de resposta do banco de dados que são executados/invocados automaticamente sempre que um incidente específico de banco de dados acontecer. Assim, quando você realiza certas consultas no banco de dados, existe a possibilidade de que uma consulta de gatilho específica seja executada como uma reação.

Portanto, decidimos cobrir o tópico dos gatilhos SQLite no Ubuntu 20.04 Ao usar a biblioteca C sqlite do banco de dados SQL. Vamos começar com a abertura de um terminal do Ubuntu 20.04. Deve ser iniciado com o Ctrl+Alt+T, pois temos que fazer a maior parte do nosso trabalho nele. Dentro do terminal do shell, você precisa experimentar as instruções de atualização e atualização combinadas com o pacote APT para tornar seu sistema atualizado, sem bugs e atualizar seus pacotes.

Você pode encontrar a seguinte saída exibida abaixo no final do processo de atualização e atualização. Vamos avançar em direção ao banco de dados SQLite.

Vamos iniciar o pacote c sqlite de um banco de dados em nossa concha do Ubuntu 20.04 com a ajuda da palavra -chave "sqlite3". O shell de comando para sqlite será gerado na sua tela, como mostrado abaixo.

Os gatilhos são sempre criados como uma resposta a algumas consultas em um banco de dados e as consultas são aplicadas às tabelas. Não temos tabela em nosso banco de dados agora. Então, precisamos criar novas tabelas. Para aplicar gatilhos, precisamos de pelo menos 2 tabelas. Portanto, estamos criando um novo aluno da tabela com 5 colunas (eu.e., Sid, Nome, RNO, Marcas e Status.) O nome e a coluna de status são do tipo de texto enquanto os restos das colunas são de int ou tipo real.

Depois disso, estamos criando um novo dados de tabela com três colunas: ID, status e registro. Esta tabela será utilizada no momento de invocar gatilhos. Tentamos a instrução SELECT seguindo o personagem "*" para buscar os registros de ambas as tabelas recém -criadas (i.e., Aluno e dados.) A consulta para ambas as tabelas está mostrando que as mesas estão vazias.

Criar Table Student (Sid int Primary Key Not NULL, Nome Text Not Null, Rno int não nulo,
Marca real não nula, texto de status não nulo);
Criar dados da tabela (id não nulo, texto de status não nulo, gravar texto);
Selecione * do aluno;
Selecione * FROM DATA;

Vamos inserir alguns registros na tabela do aluno e ver se inserir os registros nesta tabela pode afetar a outra tabela "dados" ou não. Assim, estamos tentando inserir a instrução para adicionar um total de 5 registros em todas as 5 colunas de uma tabela (i.e., Id, nome, RNO, marcas e status.) Depois de inserir os 5 registros com sucesso, estamos tentando a instrução selecionada seguida pelo personagem Asterisk “*” para exibir todos os registros de uma tabela “aluno”. A execução deste comando tem apresentado os 5 registros em nossa tela de shell do banco de dados SQLite.

Depois disso, temos que verificar a tabela de dados se for afetada ou não. Então, tentamos a instrução selecionada com o caractere "*" para a tabela de dados também. Descobrimos que a tabela ainda está vazia e a inserção de dados na tabela de estudantes não afeta a tabela "dados" ainda. Vamos avançar em direção à criação de um gatilho.

Insira no aluno (ID, nome, RNO, Marks, Status) valores (1, "Tim", 344, 45, "Pass"),
(2, "Ema", 355, 98, "Pass"), (3, "Julia", 349, 22, "Fail"), (4, "John", 335, 47, "Pass"),
(5, "Paul", 250, 25, "Fail");
Selecione * do aluno;
Selecione * FROM DATA;

Então, estaremos criando um novo gatilho para deixar a inserção de registros em uma tabela afetar a outra. Assim, criaremos um gatilho de inserção na tabela de estudantes, para que o uso da instrução Create Trigger no shell sqlite seja seguido pelo nome de um gatilho a ser criado (i.e., "Eu registro").

Após o nome de um gatilho, você deve usar a palavra -chave "depois" junto com o tipo de consulta para o qual esse gatilho será executado (i.e., Inserir, excluir, atualizar, etc.) Então, estamos usando a palavra -chave “após inserção” para fazer com que esse gatilho seja executado após a execução do comando de inserção, seguido pela cláusula “on”, juntamente com o nome de uma tabela na qual esse gatilho será aplicado (i.e., na mesa do aluno.) A condição do gatilho começará com o "começo" e para com a palavra -chave "final".

Dentro dessas palavras -chave, escreveremos nossa declaração de gatilho que será invocada após a execução de uma consulta de inserção específica. O gatilho contém uma consulta de inserção para adicionar a entrada na tabela de dados após a execução da instrução de inserção para a tabela de estudantes. A coluna "Rid" e "Status" da tabela de dados usarão os valores da tabela de estudantes de acordo com a palavra -chave "novo" seguida pelos nomes das colunas de uma tabela de estudantes (i.e. novo.Id, novo.STATUS.) O registro da coluna da tabela de dados será atribuído com o valor "Record inserido", como mostrado.

Crie gatilho i_log após inserção no aluno
COMEÇAR
Inserir em dados (rid, status, registro) valores (novo.Id, novo.Status, "registro inserido");
FIM;

O gatilho "i_log" foi criado com sucesso no banco de dados sqlite e está pronto para uso. Estaremos inserindo alguns registros na tabela de estudantes para fazer o gatilho ser executado automaticamente após o uso da inserção na instrução. Após a execução do comando de inserção, tentamos a consulta selecionada para ver os registros da tabela de estudantes. Ambos os novos registros foram adicionados a esta tabela. Depois disso, tentamos buscar os registros de uma tabela de dados usando a instrução Selecionar. Desta vez, a tabela de dados também mostra 2 entradas que estão sendo adicionadas pelo gatilho automático "i_log" na consulta de inserção para a tabela de estudantes.

Insira no aluno (ID, nome, RNO, Marks, Status) valores (6, "Bryan", 256, 78, "Pass"),
(7, "Taylor", 441, 64, "Pass");
Selecione * do aluno;
Selecione * FROM DATA;

Conclusão:

Isso foi sobre o uso de gatilhos para realizar uma consulta específica sobre a execução de outra consulta no banco de dados SQLite. Realizamos o gatilho de instrução de inserção neste artigo. Todas as etapas são claramente descritas em detalhes.