Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyzwalacze do łączenia wielu stołów

  1. MySql nie pozwala na wprowadzanie zmian w kodzie wyzwalacza do tej samej tabeli, na której znajduje się ten wyzwalacz
  2. Możesz obejść to ograniczenie, zmieniając wartość kolumny wstawianego wiersza za pomocą BEFORE zdarzenie zamiast AFTER .
  3. Teraz, aby zaadresować wartości kolumn wiersza wstawianego do MySql, musisz użyć NEW słowo kluczowe.

Biorąc to pod uwagę, twój wyzwalacz powinien wyglądać tak

CREATE TRIGGER tg_test1_insert
BEFORE INSERT ON test1 
FOR EACH ROW
  SET NEW.originindex = 
     (
       SELECT value 
         FROM cities 
        WHERE city = NEW.origin
     );

Oto SQLFiddle demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodawanie łamania linii w MySQL INSERT INTO text

  2. MySQL — wyzwalacz aktualizacji kolumny w innej tabeli po wstawieniu, gdzie spełnia inne wartości

  3. co oznacza nieuwierzytelniony użytkownik w MYSQL?

  4. Mysql High UPDATE SELECT powoduje lagi

  5. przechowuj wiele wartości pól wyboru w bazie danych za pomocą php i mysql