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

标签 mysql pdo transactions timeout mysql-error-1205

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

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

一切顺利,除非我启动事务并锁定新 ID 的第一个数据库,而第二个数据库无法插入该 ID,我得到 SQLSTATE[HY000]:一般错误:1205 超出锁定等待超时;尝试重新启动事务。当我删除外键时,一切都会顺利。

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

谢谢拉敏

最佳答案

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

如果您看到更好的解决方案,请提供解决方案,我会在将来随时接受该解决方案。

谢谢拉敏

关于当插入到主数据库上有外键的两个数据库时,MySql 事务锁定超时(1205),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41996356/

相关文章:

sql-server - 已提交读与可重复读示例

asp.net - SQL 事务 : Best Way to Implement in ASP. 网络

mysql - 操作错误: (1698, "Access denied for user ' cotequotey'@'localhost'“)

php - Codeigniter 删除

php - 是否可以将 mysql_insert_id() 与 while 循环一起使用?

php - 将日期从 PDO 传递到 MySQL 存储过程

php - 如何检查MySQL中是否存在行? (即检查用户名或电子邮件是否存在于 MySQL 中)

java - 为什么 TRANSACTION_READ_COMMITTED 是 Java 中的默认值?

mysql - 转换为 CHAR 导致 VARCHAR 列上的索引不起作用

php - 在回调函数中看不到 PDO 连接对象