Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Używanie „end” jako nazwy kolumny w Ruby on Rails (MySQL)

BEGIN i END są słowami zastrzeżonymi w Oracle i SQL Server, ale nie wiem, dlaczego MySQL nie uważa ich za takie .

Jednak ten PGError wydaje się wskazywać, że sam silnik bazy danych (a nie żadne środowisko uruchomieniowe związane z Rubym) rzeczywiście odrzuciło zapytanie z powodu „koniec”.

Zarezerwowane słowa (i nazwy zawierające spacje) mogą być użyte, jeśli są cytowane - być może Active Record nie zacytował identyfikatorów w wygenerowanym SQL.

Spojrzałbym na dziennik w MySQL (http://dev.mysql.com/doc/refman/5.5/en/query-log.html) i zobaczyłby wygenerowane instrukcje.

A skoro PGError oznacza PostGreSQL, a wspomniałeś o Heroku (PostgreSQL 8.3) - myślę, że dzieje się tak dlatego, że END jest rzeczywiście zastrzeżonym słowem w 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql UTWÓRZ DEFINERA

  2. budowanie aplikacji opartej na rolach

  3. Hibernacja Nie można dodać lub zaktualizować wiersza podrzędnego:ograniczenie klucza obcego nie powiodło się

  4. przekonwertuj listę na ciąg, aby wstawić do mojego sql w jednym wierszu w python scrapy

  5. Czy zarządzanie transakcjami w kontrolerze to zła praktyka?