【问题标题】:PGError syntax problem for named_scopenamed_scope 的 PGError 语法问题
【发布时间】:2010-03-17 21:06:36
【问题描述】:

我有以下 named_scope,它在 MySQL 和 sqlite 中运行良好,但在 Postgres 中运行良好:

course.rb

named_scope :current, :conditions => ['start < ? AND end > ? ', Time.now, Time.now], :order => 'start ASC'

那我就打个电话:

Course.current

我得到错误:

PGError: ERROR: 语法错误或 靠近“结束”第 1 行:... WHERE(开始 '201... ^ : SELECT count(*) AS count_all FROM “课程”在哪里(开始 '2010-03-17 14:03:24.995748')

我的 google-fu 让我失望了,所以我希望 Stack Overflow 不会。关于如何使该范围对 Postgres 友好的任何想法?谢谢,

画了

【问题讨论】:

    标签: mysql postgresql named-scope


    【解决方案1】:

    END 是关键字,您必须使用其他名称或将其放在双引号“end”之间。

    如果您在列名周围使用双引号并将此代码也用于 MySQL,请通过设置正确的 SQL MODE 告诉 MySQL 接受双引号作为对象标识符:ANSI_QUOTES

    【讨论】:

    • 就是这样!我将列从“结束”重命名为“完成”,现在我们都准备好了。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多