MySQL 触发锁定 table

MySQL trigger locks table

我在 MySQL 中创建了触发器来更新数据,但问题是一旦我部署触发器,它就会锁定 tables 并且使用这些 tables 的应用程序无法访问。

编辑

我创建的触发器将在 table

中插入数据
USE app ; //db user n database1
DELIMITER $
Create trigger Insert_Data After insert on clients for each row
Begin

insert into database2.customers` 
values('1', NULL, NULL, NULL, 'US', 'USD', NULL, NULL, NULL, NULL, NULL, 'America/New_York', NULL, '0', '0', NULL
);

End $
DELIMITER ;

部署上述触发器后,website/GUI 无法访问客户端 table,该 website/GUI 从 UI 页面上的提交选项插入数据。

编辑

我正在添加 SQLError 日志,也很抱歉没有提到我正在使用一个数据库中的触发器在另一个数据库中插入数据。

production.ERROR: [stacktrace] 2022-02-25 05:54:43 SQLSTATE[42000]: Syntax error or access violation: 1142 INSERT command denied to user XXXXX

对于从数据库 1 执行时触发器应该在数据库 2 中添加记录的这种情况,我该怎么办?

以上评论线程的总结:错误的来源是这样的:

Syntax error or access violation

调用触发器的 MySQL 用户没有 database2.customers table 的插入权限。用户仅对存储 clients table 的主数据库具有权限。

在触发器中执行的 SQL 语句中的错误导致生成触发器的操作失败。

MySQL 用户在 database2 中被授予对 tables 的 INSERT 权限后,错误停止,问题得到解决。