Я запускаю звіт у MySQL. Один із запитів передбачає вставку великої кількості рядків до тимчасової таблиці. Коли я намагаюся запустити його, я отримую таку помилку:
Код помилки 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. Я змінив це у запиті, але не тут.
