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 权限后,错误停止,问题得到解决。
我在 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 权限后,错误停止,问题得到解决。