MySql 插入两个主数据库有外键的数据库时事务锁定超时 (1205)

MySql transaction lock timeout (1205) when insert into two databases which have foreign key on primary

我在 mysql 运行 innoDB 中有两个数据库,第二个数据库有与第一个数据库的主键相关的外键。

在我的代码中,我需要插入第一个数据库并获取它的 ID,然后插入第二个数据库。

一切顺利,除非我开始交易并且为新 ID 锁定第一个数据库,而第二个数据库无法插入该 ID,我正在获取 SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction。当我删除外键时,一切正常。

我需要提到我使用 PHP PDO 连接到 MySql 并且我创建了到每个数据库的单独连接而且我也无法提交第一个数据库事务以便第二个事务通过,因为我需要确保所有数据库的所有事务在整个过程中都正常,然后开始提交它们。

谢谢拉明

似乎唯一的解决方案是要么提交第一个数据库并在第二个数据库上启动事务,要么删除数据库之间的外键。

如果您看到更好的解决方案,请提供解决方案,我会在以后的任何时候接受它作为答案。

谢谢拉明