Я запускаю отчет в MySQL. Один из запросов включает вложение большого количества строк в таблицу temp. Когда я пытаюсь запустить его, я получаю эту ошибку:
Код ошибки 1206: количество блокировок превышает размер таблицы блокировок.
Задаваемые запросы:
create temporary table SkusBought(
customerNum int(11),
sku int(11),
typedesc char(25),
key `customerNum` (customerNum)
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
insert into skusBought
select t1.* from
(select customer, sku, typedesc from transactiondatatransit
where (cat = 150 or cat = 151)
AND daysfrom07jan1 > 731
group by customer, sku
union
select customer, sku, typedesc from transactiondatadelaware
where (cat = 150 or cat = 151)
AND daysfrom07jan1 > 731
group by customer, sku
union
select customer, sku, typedesc from transactiondataprestige
where (cat = 150 or cat = 151)
AND daysfrom07jan1 > 731
group by customer, sku) t1
join
(select customernum from topThreetransit group by customernum) t2
on t1.customer = t2.customernum;
Я читал, что изменение файла конфигурации для увеличения размера пула буферов поможет, но это ничего не делает. Какой способ исправить это, как временное обходное решение или постоянное исправление?
EDIT: изменена часть запроса. Это не должно повлиять на это, но я все-таки нашел-заменил все и не понял, что это испортило это. Не влияет на вопрос.
EDIT 2: Добавлен typedesc в t1. Я изменил его в запросе, но не здесь.