sql >> Database teknologi >  >> RDS >> Mysql

HVIS IKKE FINDER i trigger

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 ;

Jeg bruger ikke not exists , test bare om matchtælleren er større end 0

din kode kører godt på min maskine, hvad er din MySQL-version?

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


  1. Sådan bruges den samme tidsplan til flere SQL Server Agent-job (T-SQL)

  2. Hvad svarer til LISTAGG (Oracle-database) i PostgreSQL?

  3. Henter en række med data fra nøgleværdi-partabel i MySQL

  4. Fejl 28000:Login mislykkedes for bruger DOMAIN\\bruger med pyodbc