quarta-feira, 14 de setembro de 2011

MySQL e NHibernate - erro de sintaxe

Essa não briguei por tanto tempo assim.

No meu projeto, estou usando NHibernate e MySQL. Configurei para, quando eu alterar minhas classes, ele atualizar o banco de dados. E eis que, "do nada", ele reclamou para atualizar uma tabela com colunas novas.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'In DOUBLE' at line 1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Out DOUBLE' at line 1

Procurei na internet pelo pedaço do erro antes do nome da coluna (In e Out). Parei para ver isso umas duas vezes ontem e mais umas três hoje. Nada. Então coloquei o erro inteiro, tirando só o nome da coluna. Bati o olho no título de umas das páginas e vi algo que sempre esqueço de olhar:

"reserved words in table names"

In e Out são palavras reservadas, e o NH não considera isso ao criar as colunas. Ele cria o que você mandar ele criar. Logo, dá erro de sintaxe.

Triste é pensar que, quando eu encontrar um erro assim de novo, provavelmente vou ter esquecido a solução!

Até.

Um comentário:

  1. Bom, agora que você escreveu um post sobre isso, provavelmente não vai mais esquecer! rs

    ResponderExcluir