Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

memicu tabel mysql tidak dikenal

Saya telah menunjukkan di bawah apa yang dikatakan dalam komentar untuk pertanyaan:

CREATE TRIGGER some_trigger AFTER UPDATE ON table_a
    FOR EACH ROW BEGIN
    DECLARE tname VARCHAR(20);
    IF (NEW.field_offer=1) THEN
       UPDATE `table_b` 
       SET STOCK = CASE NEW.field_state 
                   WHEN 0 THEN STOCK - 1 
                   WHEN 1 THEN STOCK + 1 
                   ELSE STOCK 
                   END
       WHERE ID=NEW.ref_field
       ;
    ELSEIF (NEW.field_offer=0) THEN
       UPDATE `table_c` 
       SET STOCK = CASE NEW.field_state 
                   WHEN 0 THEN STOCK - 1 
                   WHEN 1 THEN STOCK + 1 
                   ELSE STOCK 
                   END
       WHERE ID=NEW.ref_field
       ;
    END IF;
    ...

Perhatikan bahwa saya mengubah pembaruan dari UPDATE ... JOIN karena MySQL tidak mengizinkan Anda untuk mengubah data tabel yang dipicu; sementara Anda tidak benar-benar memperbarui table_a, GABUNG sudah cukup bagi MySQL untuk keberatan... itu dan gabungan akan memperbarui setiap baris di table_b/c yang memiliki kecocokan di table_a , bukan hanya table_a baris yang terkait dengan nilai dalam atau baris pemicu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengembalikan baris yang hilang dari tabel - Laporan Absen Karyawan

  2. kinerja neo4j dibandingkan dengan mysql (bagaimana bisa ditingkatkan?)

  3. perbarui kolom tabel setelah memasukkan catatan baru menggunakan pemicu MySQL

  4. Bagaimana cara mereferensikan tabel induk dalam gabungan multi tabel?

  5. Setelah menginstal MySQL versi terbaru maka saya mendapatkan kesalahan:#1366 - Nilai integer salah:'' untuk kolom 'group_id' di baris 1