Недавно я установил MySQL 8 и обнаружил, что некоторые запросы больше не выполняются. Ошибка:
SQL Error (1022): Can't write; duplicate key in table 'C:\WINDOWS\SERVIC~1\NETWOR~1\AppData\Local\Temp\#sql2db8_13_26'
Не было проблем с MySQL 5.7 или более ранними версиями.
Все мои исследования на форумах показали, что это обычно происходит в случае внешних ключей и ограничений. У меня их нет, только первичный ключ и 2 индекса.
Мой запрос создает 843 столбца с KPI, все из которых агрегируются с помощью sum (). Что произвело на меня впечатление, так это то, что если я удалю примерно 2/3 содержимого запроса, запрос будет выполняться нормально без каких-либо ошибок. Также, если я удалю группу по или все суммы, тоже не возникнет проблем.
Поэтому мне интересно, есть ли какое-либо новое ограничение количества агрегатных операторов в MySQL 8.0.
A упрощенный пример моего запроса ниже. Таблица работает под управлением MyISAM.
select Time,eNodeB,
round((sum(`L.E-RAB.SuccEst.QCI.1`)/sum(`L.E-RAB.AttEst.QCI.1`))*100,3) as RAB_Est_SR,
sum(`L.E-RAB.AttEst.QCI.1`) as RAB_Est_att,
...
from h_cell
where enodeb='10006' and time>='2018-01-01'
group by time