Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando 'end' como nome de coluna em Ruby on Rails (MySQL)


BEGIN e END são palavras reservadas no Oracle e SQL Server, mas não sei por que MySQL não os considera como tal .

No entanto, esse PGError parece indicar que o próprio mecanismo de banco de dados (e não qualquer tempo de execução relacionado ao Ruby) de fato rejeitou a consulta por causa do "fim".

Palavras reservadas (e nomes contendo espaços) podem ser usadas se citadas - talvez o Active Record não tenha citado os identificadores no SQL que foi gerado.

Eu olharia para o log no MySQL (http://dev.mysql.com/doc/refman/5.5/en/query-log.html) e veria as instruções geradas.

E como PGError significa PostGreSQL e você mencionou Heroku (PostgreSQL 8.3) - acho que é porque END é realmente uma palavra reservada no PostgreSQL:http://www.postgresql.org/docs/8.3/static/sql-keywords-appendix.html

http://www.petefreitag.com/tools/sql_reserved_words_checker/?word=end