Trigger

di il
7 risposte

Trigger

 delimiter $$ 
create trigger mytrigger before insert 
on employee
for each row begin 
insert into trigger_test values('added new employee');
end$$ 
delimiter;
Sto seguendo questo tutorial https://youtu.be/HXV3zeQKqGY?t=1280 sono esattamente al minuto del link e come vedete dovrei aver scritto uguale al video eppure mi da errore. Perché?


16:31:16 delimiter; Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1 0.000 sec

7 Risposte

  • Re: Trigger

    Tra delimiter e ; non hai messo uno spazio
  • Re: Trigger

    Che cosa fa esattamente trigger e delimiter ? Non ho capito.
  • Re: Trigger

    Https://www.mrwebmaster.it/mysql/trigger_12151.htm
  • Re: Trigger

    p0ll0_ ha scritto:


    Che cosa fa esattamente trigger e delimiter ? Non ho capito.
    essenzialmente è uno dei problemi giganteschi, anche se banali.
    cioè la previsione che gli statement SQL terminino con ;
    delimiter server per cambiare il delimitatore predefinito (il per consentire nella scrittura del trigger di usarlo, e poi risettarlo a quello di default
  • Re: Trigger

    Perdonatemi, ma continuo a non capire.
  • Re: Trigger

    p0ll0_ ha scritto:


    Perdonatemi, ma continuo a non capire.
    Perdonaci tu ma il forum non è un insegnante. È quello che ti serve.
  • Re: Trigger

    p0ll0_ ha scritto:


    Perdonatemi, ma continuo a non capire.
    Puoi concatenare vari comandi sql con;

    Ma quando fai uno scriptino per un trigger se usi ; interrompi la sequenza di operazioni, essenzialmente segando a metà il trigger

    Definire un delimitatore temporaneo diverso da ; consente di usare il ; dentro il trigger
    Se imponi che so $$ farai
    
    Cambia delimitatore in $$ (puoi mettere quello che ti pare)
    
    Definisci il trigger con dentro
    più comandi che finiscono con ;
    Comando1;
    Comando2;
    Comando3;
    
    Chiarisci che il trigger è finito mettendo $$
    
    Rimetti il delimitatore a ;
    

    Se invece non fai il truccheto
    
    Definisci il trigger
    Comando1;
    
    FINE DELLA DEFINIZIONE TRIGGER PROVOCATA DAL ;
    
    Comando2;
    Comando3;
    
    ovviamente il trigger sarebbe sbagliato e i comandi sbagliati
Devi accedere o registrarti per scrivere nel forum
7 risposte