Tenho uma consulta que funcionou sem erros até o mês passado.
SELECT ..., (SELECT count(id) FROM table2) as rows FROM table1;
Agora o MySQL gera este erro:
Erro de sintaxe ou violação de acesso: 1064 Você tem um erro na sintaxe do seu SQL; verifique o manual correspondente à versão do seu servidor MySQL para saber a sintaxe correta a ser usada perto de 'rows [...]
É por isso que rows
se tornou uma palavra reservada no MySQL?
Eu executo a consulta em uma máquina que não posso verificar e/ou controlar, então não sei se a causa pode ser uma atualização de software.
Tenho me deparado com uma lista realmente grande de palavras reservadas em algo que estou fazendo. Percebi, no entanto, que as palavras são reservadas em uma certa forma, ou apenas como uma palavra bruta. Elas se comportam de forma diferente se você colocar aspas simples em volta da palavra. Eu fiz isso:
Essa pergunta específica é boba, mas ilustra o ponto.
No MySQL 5.x ,
ROWS
era uma palavra-chave, mas não reservada.A documentação do MySQL 8.0 diz que ela se tornou uma palavra reservada na versão 8.0.2.