首页 > 解决方案 > 无法删除触发器,因为它“不存在”

问题描述

我有以下两个触发器

cascadeUserInsertionToRecommendations_tbl

afterinsertiontousers

现在,为了完整起见,下面是“显示触发器”的结果;

+-------------------------------------------+--------+-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------+--------+------------------------+-----------------------------------------------------+---------+----------------------+----------------------+--------------------+
| Trigger                                   | Event  | Table     | Statement                                                                                                                                              | Timing | Created                | sql_mode                                            | Definer | character_set_client | collation_connection | Database Collation |
+-------------------------------------------+--------+-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------+--------+------------------------+-----------------------------------------------------+---------+----------------------+----------------------+--------------------+
| cascadeUserInsertionToRecommendations_tbl | INSERT | users_tbl | INSERT INTO recommendations_tbl(recommendation_userid, recommendation_category, recommendation_manufacturer) VALUES(NEW.user_id, 'diverse', 'diverse') | AFTER  | 2019-09-02 12:32:46.19 | NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION | @       | latin1               | latin1_swedish_ci    | latin1_swedish_ci  |
| afterinsertiontousers                     | INSERT | users_tbl | INSERT INTO recommendations_tbl(recommendation_userid, recommendation_category, recommendation_manufacturer) VALUES(NEW.user_id, DEFAULT, DEFAULT)     | AFTER  | 2019-09-02 15:48:39.52 | NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION | @       | latin1               | latin1_swedish_ci    | latin1_swedish_ci  |
+-------------------------------------------+--------+-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------+--------+------------------------+-----------------------------------------------------+---------+----------------------+----------------------+--------------------+

现在的问题是我不能删除它们:/当我在基础测试时,我创建触发器的数据库如下所示:

CREATE TRIGGER afterinsertiontousers
    -> AFTER INSERT ON users_tbl
    -> FOR EACH ROW
    -> INSERT INTO recommendations_tbl(recommendation_userid, recommendation_category, recommendation_manufacturer) VALUES(NEW.user_id, DEFAULT, DEFAULT);
Query OK, 0 rows affected (0.016 sec)

这就是发生的事情:

MariaDB [foundationtests]> DROP TRIGGER users_tbl.cascadeUserInsertionToRecommendations_tbl;
ERROR 1360 (HY000): Trigger does not exist

我已经切换到 information_schema 数据库并在那里删除了上面的触发器。但是,它仍然出现在这里并且它仍然可以完成它不应该的工作......

我读到必须在 SO 上的多个其他线程上使用“db5”,但是当使用“显示数据库”时,我无法访问这个数据库,它也不会出现在我的数据库列表中;所以我对我想念的东西一无所知 Oo

标签: mysqltriggers

解决方案


推荐阅读