-1

我想在 mysql 数据库中执行这个查询:

INSERT INTO customerdata (CustomerID, ......)
        SELECT cd.CustomerID, ...
        FROM customerdata cd
        WHERE cd.Latest = 1
        AND cd.CustomerID IN
            (SELECT CustomerID
            FROM customerdata
            WHERE Active = 1 
            GROUP BY CustomerID
            HAVING (MAX(StatisticDate) < UTC_TIMESTAMP()));

但我有“SQLError (1205): Lock wait timeout exceeded; try restarting transaction”。我在这里读到“当同时从表中选择和插入时,MySQL 创建一个临时表来保存 SELECT 中的行,然后将这些行插入到目标表中”,出了什么问题?*innodb_version:1.1.8
protocol_version:10
版本:5.5.28*

4

1 回答 1

0

您插入的记录过多。尝试先执行启动事务,然后执行您的插入语句。然后提交更改。

于 2013-11-11T16:09:37.370 回答