sql >> Database teknologi >  >> RDS >> Mysql

Brug af 'end' som kolonnenavn i Ruby on Rails (MySQL)

BEGIN og END er reserverede ord i Oracle og SQL Server, men ikke sikker på hvorfor MySQL betragter dem ikke som sådan .

Denne PGError ser dog ud til at indikere, at selve databasemotoren (og ikke nogen Ruby-relateret runtime) faktisk har afvist forespørgslen på grund af "slutningen".

Reserverede ord (og navne, der indeholder mellemrum) kan bruges, hvis de er anført - måske citerede Active Record ikke identifikatorerne i den SQL, der blev genereret.

Jeg ville se på loggen i MySQL (http://dev.mysql.com/doc/refman/5.5/en/query-log.html) og se de genererede udsagn.

Og da PGError betyder PostGreSQL, og du nævnte Heroku (PostgreSQL 8.3) - tror jeg, det skyldes, at END faktisk er et reserveret ord i PostgreSQL:http://www.postgresql.org/docs/8.3/static/sql-keywords-appendix.html

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



  1. sql få samlet og filtreret antal i én forespørgsel

  2. Hvordan inkluderes jar-filer i en Java Stored Procedure i Oracle?

  3. Problem med Postgres ALTER TABLE

  4. Importer data fra en txt-fil i en MySQL-database med PHP ved besøg