2017-02-04 2 views
0

Ich möchte 2 Felder (Vorname & Nachname) der gleichen Tabelle "Clients" Großbuchstaben beim Einfügen machen.mysql - trigger, mehrere Anweisungen für das gleiche Ereignis und die gleiche Zeit

mysql> show triggers LIKE 'clients'\G; 
*************************** 1. row *************************** 
      Trigger: ucase_insert 
       Event: INSERT 
       Table: tlc 
      Statement: SET NEW.firstname = upper(NEW.firstname) 
       Timing: BEFORE 
      Created: 2017-02-04 11:53:45.87 
      sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
      Definer: [email protected]% 
character_set_client: utf8mb4 
collation_connection: utf8mb4_unicode_ci 
    Database Collation: utf8_general_ci 

Ich benutze phpmyadmin als Schnittstelle. Es scheint, dass ich nicht eine zusätzliche zweite Anweisung hinzufügen wie ...

  Statement: SET NEW.lastname = upper(NEW.lastname) 

..., die auf der gleichen Veranstaltung und Zeit wie die erste auslösen soll.

Ist das möglich?

Antwort

0

Ich fand die Lösung. Mit BEGIN/END kann ich mehrere Anweisungen einschließen. Scheint trivial, aber dauerte mich eine ganze Weile, um herauszufinden, ...

mysql> show triggers LIKE 'clients'\G; 
*************************** 1. row *************************** 
      Trigger: ucase_insert 
       Event: INSERT 
       Table: tlc 
      Statement: BEGIN 
SET NEW.firstname = upper(NEW.firstname); 
SET NEW.lastname = upper(NEW.lastname); 
END 
      Timing: BEFORE 
      Created: 2017-02-04 11:53:45.87 
      sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
      Definer: [email protected]% 
character_set_client: utf8mb4 
collation_connection: utf8mb4_unicode_ci 
    Database Collation: utf8_general_ci 
Verwandte Themen