Error number: 4100; Symbol: ER_IF_NOT_EXISTS_UNSUPPORTED_TRG_EXISTS_ON_DIFFERENT_TABLE; SQLSTATE: HY000
Message: Trigger ‘%s’.’%s’ already exists on a different table. The ‘IF NOT EXISTS’ clause is only supported for triggers associated with the same table.
Error Number 4100: ER_IF_NOT_EXISTS_UNSUPPORTED_TRG_EXISTS_ON_DIFFERENT_TABLE
Error SQLSTATE: HY000
错误说明:
这是一个MySQL错误,当使用CREATE TRIGGER语句创建触发器但存在相同名称,但属于不同表的触发器,就会返回ER_IF_NOT_EXISTS_UNSUPPORTED_TRG_EXISTS_ON_DIFFERENT_TABLE。该错误表明,触发器已经被创建但存在另一个表中,而不是当前的表。
常见案例:
在MySQL数据库中,用户试图创建完全相同的触发器,但希望它只属于不同的表,但是在创建触发器之前,用户忘记查看表的触发器是否已经存在。
解决方法:
解决该错误的方法很简单,只要用户将触发器的名称更改为不同的名称,即可解决该问题。或者用户可以使用CREATE OR REPLACE TRIGGER语句,下载触发器并删除原始触发器,然后重新创建触发器。但是,重新创建触发器有可能成功,也有可能失败,因为MySQL的表有可能具有不同的表结构。