logo

Activador SQL | Base de dades d'estudiants

Un activador és un procediment emmagatzemat en una base de dades que invoca automàticament cada vegada que es produeix un esdeveniment especial a la base de dades. Per exemple, es pot invocar un activador quan s'insereix una fila en una taula especificada o quan s'actualitzen columnes específiques de la taula. En paraules simples, un disparador és una col·lecció de SQL sentències amb noms concrets que s'emmagatzemen a la memòria del sistema. Pertany a una classe específica de procediments emmagatzemats que s'invoquen automàticament en resposta als esdeveniments del servidor de bases de dades. Cada disparador té una taula adjunta.

Com que un activador no es pot cridar directament, a diferència d'un procediment emmagatzemat, es coneix com a procediment especial. Un activador es crida automàticament sempre que es produeix un esdeveniment de modificació de dades en una taula, que és la distinció principal entre un activador i un procediment. D'altra banda, un procediment emmagatzemat s'ha de cridar directament.



A continuació es mostren les diferències clau entre els activadors i els procediments emmagatzemats:

  1. Els activadors no es poden invocar ni executar manualment.
  2. No hi ha cap possibilitat que els activadors rebin paràmetres.
  3. Una transacció no es pot confirmar ni revertir dins d'un activador.

Sintaxi:

crear activador [trigger_name]



[abans | després]

inserir

a [nom_taula]



[per a cada fila]

[trigger_body]

Explicació de la sintaxi

  1. Crea activador [trigger_name]: crea o substitueix un activador existent amb el trigger_name.
  2. [abans | after]: Això especifica quan s'executarà el disparador.
  3. insert : especifica l'operació DML.
  4. A [nom_taula]: especifica el nom de la taula associada amb l'activador.
  5. [per a cada fila]: especifica un activador a nivell de fila, és a dir, l'activador s'executarà per a cada fila afectada.
  6. [trigger_body]: proporciona l'operació que s'ha de realitzar a mesura que s'activa el disparador

Per què utilitzem activadors?

Quan necessitem dur a terme algunes accions automàticament en determinats escenaris desitjables, els disparadors seran útils. Per exemple, hem de ser conscients de la freqüència i el moment dels canvis a una taula que canvia constantment. En aquests casos, podríem crear un activador per inserir les dades necessàries en una taula diferent si la taula principal ha patit algun canvi.

Diferents tipus d'activador a SQL Server

Existeixen dues categories de desencadenants:

  1. Activador DDL
  2. Activador DML
  3. Activadors d'inici de sessió

Activadors DDL

Els esdeveniments d'ordres del llenguatge de definició de dades (DDL) com ara Create_table, Create_view, drop_table, Drop_view i Alter_table fan que s'activin els activadors DDL.

SQL Server

quadre de llista java
  create trigger safety    on database  for   create_table,alter_table,drop_table  as   print 'you can not create,drop and alter tab>

Sortida:

Activadors de DML

Les dades utilitzen esdeveniments d'ordres de manipulació del llenguatge (DML) que comencen amb Inserir, Actualitzar i Suprimir que activen els activadors DML. corresponent a insert_table, update_view i delete_table.

SQL Server

create trigger deep  on   emp  for insert,update ,delete   as   print 'you can not insert,update and delete this table i' rollback;>

Sortida:

Activadors d'inici de sessió

Els activadors d'inici de sessió són incendis en resposta a un esdeveniment LOGON. Quan es crea una sessió d'usuari amb una instància d'SQL Server després que s'hagi acabat el procés d'autenticació del registre, però abans d'establir una sessió d'usuari, té lloc l'esdeveniment LOGON. Com a resultat, els missatges de la instrucció PRINT i els errors generats pel disparador seran visibles al registre d'errors de l'SQL Server. Els errors d'autenticació impedeixen que s'utilitzin activadors d'inici de sessió. Aquests activadors es poden utilitzar per fer un seguiment de l'activitat d'inici de sessió o establir un límit en el nombre de sessions que pot tenir un inici de sessió determinat per auditar i gestionar les sessions del servidor.

Com mostra el disparador SQL Server?

L'activador mostra o llista és útil quan tenim moltes bases de dades amb moltes taules. Aquesta consulta és molt útil quan els noms de les taules són els mateixos en diverses bases de dades. Podem veure una llista de tots els activadors disponibles al servidor SQL mitjançant l'ordre següent:

Sintaxi:

FROM sys.triggers, SELECT name, is_instead_of_trigger
IF tipus = 'TR';

L'SQL Server Management Studio fa que sigui molt senzill mostrar o llistar tots els activadors disponibles per a una taula determinada. Els passos següents ens ajudaran a aconseguir-ho:

Aneu a la Bases de dades menú, seleccioneu la base de dades desitjada i, a continuació, expandiu-la.

  • Seleccioneu el Taules menú i amplia-lo.
  • Seleccioneu qualsevol taula específica i expandiu-la.

Aquí tindrem diverses opcions. Quan triem el Disparadors opció, mostra tots els activadors disponibles en aquesta taula.

ABANS i DESPRÉS Trigger

BEFORE que els activadors executin l'acció de l'activació abans que s'executi la instrucció d'activació. Els disparadors AFTER executen l'acció d'activació després d'executar la instrucció d'activació.

Exemple
Donada la base de dades d'informes de l'estudiant, en la qual es registra l'avaluació de les notes de l'estudiant. En aquest esquema, creeu un activador perquè el total i el percentatge de les marques especificades s'insereixin automàticament sempre que s'insereixi un registre.

Aquí, s'invocarà un activador abans que s'insereixi el registre perquè es pugui utilitzar BEFORE Tag.

Suposem l'esquema de la base de dades

Consulta

mysql>>desc Student;>

Activador SQL a la declaració del problema.

img2

La instrucció SQL anterior crearà un activador a la base de dades de l'estudiant en el qual sempre que s'introdueixin les notes de les assignatures, abans d'inserir aquestes dades a la base de dades, el disparador calcularà aquests dos valors i els inserirà amb els valors introduïts. és a dir

Sortida

img3

D'aquesta manera, es poden crear i executar activadors a les bases de dades.

Avantatge dels disparadors

Els avantatges d'utilitzar activadors a SQL Server inclouen els següents:

  1. Les regles d'objectes de la base de dades s'estableixen mitjançant activadors, que fan que els canvis es desfets si no es compleixen.
  2. El disparador examinarà les dades i, si cal, farà canvis.
  3. Podem fer complir la integritat de les dades gràcies als activadors.
  4. Les dades es validen mitjançant activadors abans d'inserir-se o actualitzar-les.
  5. Els activadors ens ajuden a mantenir un registre de registres.
  6. A causa del fet que no cal compilar-los cada vegada que s'executen, els activadors milloren el rendiment de les consultes SQL.
  7. El codi del client es redueix mitjançant activadors, estalviant temps i mà d'obra.
  8. El manteniment del disparador és senzill.

Desavantatge dels disparadors

Els inconvenients d'utilitzar activadors a SQL Server inclouen els següents:

  1. Només els activadors permeten l'ús de validacions ampliades.
  2. S'utilitzen activadors automàtics i l'usuari no sap quan s'executen. En conseqüència, és difícil resoldre els problemes que sorgeixen a la capa de base de dades.
  3. La sobrecàrrega del servidor de bases de dades pot augmentar com a resultat dels activadors.
  4. En una sola instrucció CREATE TRIGGER, podem especificar la mateixa acció activadora per a diverses accions d'usuari, com ara INSERT i UPDATE.
  5. Només la base de dades actual està disponible per crear activadors, però encara poden fer referències a objectes fora de la base de dades.

Preguntes freqüents

P1: Què és un activador SQL?

Resposta:

Un activador SQL és un objecte de base de dades que s'associa a una taula i executa automàticament un conjunt d'instruccions SQL quan es produeix un esdeveniment específic en aquesta taula. Els activadors s'utilitzen per fer complir les regles empresarials, mantenir la integritat de les dades i automatitzar determinades accions dins d'una base de dades. Es poden activar per diversos esdeveniments, com ara inserir, actualitzar o suprimir dades d'una taula, i us permeten realitzar operacions addicionals basades en aquests esdeveniments.

P2: Com funcionen els activadors SQL?

Resposta:

Els activadors SQL es defineixen mitjançant sentències SQL i s'associen a una taula específica. Quan l'esdeveniment d'activació definit (p. ex., INSERT, UPDATE, DELETE) es produeix en aquesta taula, el codi activador associat s'executa automàticament. El codi d'activació pot consistir en sentències SQL que poden manipular dades de la mateixa taula o d'altres, aplicar restriccions o realitzar altres accions. Els activadors s'executen dins de l'àmbit de la transacció i es poden definir perquè s'executin abans o després de l'esdeveniment desencadenant.

P3: Quins són els avantatges d'utilitzar activadors SQL?

Resposta:

Els avantatges d'utilitzar activadors SQL inclouen:

Integritat de les dades: els activadors us permeten fer complir regles i restriccions empresarials complexes a nivell de base de dades, garantint que les dades siguin coherents i precises.

Automatització: els disparadors poden automatitzar tasques repetitives o complexes executant accions predefinides sempre que es produeixi un esdeveniment específic. Això redueix la necessitat d'intervenció manual i millora l'eficiència.

Pistes d'auditoria: els activadors es poden utilitzar per fer un seguiment dels canvis fets a les dades, com ara les modificacions de registre en una taula d'auditoria independent. Això ajuda a auditar i mantenir un historial de canvis de dades.

commutador java

Validació de dades: els activadors poden realitzar comprovacions de validació addicionals a les dades abans d'inserir-les, actualitzar-les o suprimir-les, assegurant-se que només s'emmagatzemen dades vàlides i conformes a la base de dades.