Mysql
 sql >> база данни >  >> RDS >> Mysql

Използване на 'end' като име на колона в Ruby on Rails (MySQL)

BEGIN и END са запазени думи в Oracle и SQL Server, но не съм сигурен защо MySQL не ги счита за такива .

Въпреки това изглежда, че PGError показва, че самият двигател на базата данни (а не всяко свързано с Ruby време за изпълнение) наистина е отхвърлило заявката поради „край“.

Запазени думи (и имена, съдържащи интервали) могат да се използват, ако са цитирани - може би Active Record не е цитирал идентификаторите в SQL, който е генериран.

Бих погледнал регистрационния файл в MySQL (http://dev.mysql.com/doc/refman/5.5/en/query-log.html) и видях генерираните отчети.

И тъй като PGError означава PostGreSQL и вие споменахте Heroku (PostgreSQL 8.3) - мисля, че това е така, защото END наистина е запазена дума в 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. php + попълване на падащото меню при избор на друг

  2. Показване на данни от база данни с помощта на PDO

  3. Как да експортирате и импортирате съществуващ потребител (с неговите привилегии!)

  4. вмъкнете XML данни в mysql с php

  5. Проблеми при увеличаване на поле в MySQL/PHP с подготвени изрази