sql >> Databáze >  >> RDS >> Mysql

Použití 'end' jako názvu sloupce v Ruby on Rails (MySQL)

BEGIN a END jsou vyhrazená slova v Oracle a SQL Server, ale nevím, proč MySQL je za takové nepovažuje .

Zdá se však, že tato chyba PGEror naznačuje, že samotný databázový stroj (a ne jakýkoli runtime související s Ruby) skutečně odmítl dotaz z důvodu „konce“.

Vyhrazená slova (a jména obsahující mezery) mohou být použita, pokud jsou uvedena v uvozovkách – možná Active Record neuvedl identifikátory v SQL, který byl vygenerován.

Podíval bych se na log v MySQL (http://dev.mysql.com/doc/refman/5.5/en/query-log.html) a viděl vygenerované příkazy.

A protože PGError znamená PostGreSQL a zmínil jste Heroku (PostgreSQL 8.3) - myslím, že je to proto, že END je v PostgreSQL skutečně vyhrazené slovo:http://www.postgresql.org/docs/8.3/static/sql-keywords-appendix.html

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



  1. Úloha SQL Agent - Spustit jako rozevírací seznam je prázdný

  2. Jak importovat data z mysql do solr

  3. Sql Server Service Broker

  4. Dynamicky sestavujte příkaz select v Oracle 12c