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

JIKA TIDAK ADA di pemicu

DROP TRIGGER IF EXISTS before_delete_concept_access;
DELIMITER //
CREATE TRIGGER before_delete_concept_access
    BEFORE DELETE ON `concept_access` FOR EACH ROW
    BEGIN
        IF (SELECT COUNT(*) FROM concept_access_log WHERE map=OLD.map 
                          AND accesstype=OLD.accesstype AND startdate=OLD.startdate AND stopdate=OLD.stopdate) = 0 THEN
            INSERT INTO concept_access_log (map, accesstype, startdate, stopdate)
            VALUES (OLD.map, OLD.accesstype, OLD.startdate, OLD.stopdate);
        END IF;
    END//
DELIMITER ;

Saya tidak menggunakan not exists , cukup uji apakah jumlah kecocokan lebih besar dari 0

kode Anda berjalan dengan baik di komputer saya, apa versi MySQL Anda?

mysql> select version();
+------------+
| version()  |
+------------+
| 5.1.56-log |
+------------+
1 row in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih kueri mysql di antara tanggal?

  2. Penyedia ADO.NET dengan nama invarian 'MySql.Data.MySqlClient' tidak terdaftar di file konfigurasi mesin atau aplikasi

  3. Praktik terbaik untuk sistem versi data mysql

  4. Mysql group_concat dari kunci berulang dan jumlah pengulangan beberapa kolom dalam 1 kueri ( Optimasi Kueri )

  5. WebApp (Tomcat-jdbc) Koneksi DB yang dikumpulkan melemparkan pengecualian pengabaian