gpt4 book ai didi

mysql - 没有锁表 MySQL

转载 作者:行者123 更新时间:2023-11-29 02:33:07 24 4
gpt4 key购买 nike

我正在运行一个存储过程,该过程涉及放置在联接中的更多表。我的存储过程对 INNODB 表执行读取操作,写入以这种方式创建的临时表

CREATE TEMPORARY TABLE IF NOT EXISTS tmpDate
(
dates TIMESTAMP,
values INT,
ids INT
);

最后是对表 (INNODB) 的列进行更新操作,其中肯定没有冲突操作,因为我只对它执行插入操作(仅在该 StoredProcedure 中进行选择和更新)。

每次运行它时,我都会收到以下错误消息:

Lock wait timeout exceeded; try restarting transaction

我立即想到是由于持有独占锁。您知道为存储过程执行 NO LOCK 表的方法或允许我执行我的 SP 的方法吗?

最佳答案

您不应该使用 InnoDB 创建临时表。 There was a past bug report on this .

DROP TABLE IF EXISTS tmpDate;
CREATE TEMPORARY TABLE tmpDate
(
date s TIMESTAMP,
values INT,
ids INT
) ENGINE=MyISAM;

Tmp 表最好用作 MyISAM,因为 full table locks are imposed but non-blocking in nature .

关于mysql - 没有锁表 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com