sql >> Databasteknik >  >> RDS >> Mysql

Använder 'slut' som kolumnnamn i Ruby on Rails (MySQL)

BEGIN och END är reserverade ord i Oracle och SQL Server, men inte säker på varför MySQL betraktar dem inte som sådana .

Den PGError verkar dock indikera att själva databasmotorn (och inte någon Ruby-relaterad körning) verkligen har avvisat frågan på grund av "slutet".

Reserverade ord (och namn som innehåller mellanslag) kan användas om de citeras - Active Record kanske inte citerade identifierarna i SQL som genererades.

Jag skulle titta på loggen i MySQL (http://dev.mysql.com/doc/refman/5.5/en/query-log.html) och se de påståenden som genererades.

Och eftersom PGError betyder PostGreSQL och du nämnde Heroku (PostgreSQL 8.3) - jag tror att detta beror på att END verkligen är ett reserverat 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. Hitta radbrytning och vagnretur (\r\n) i MySQL

  2. ORA-02253:begränsningsspecifikation är inte tillåten här

  3. Hur man trunkerar text med en ellips i MariaDB

  4. MySQL Gå med i flera rader som kolumner