【问题标题】:Strange SQL statement error in SQLAlchemy-FlaskSQLAlchemy-Flask 中奇怪的 SQL 语句错误
【发布时间】:2013-08-05 20:07:59
【问题描述】:

我在 Flask 中使用 SQLAlchemy 连接到我的 Postgres 服务器,现在我想执行一些原始 SQL 以将列插入表中。但是,我收到此错误:

sqlalchemy.exc.ProgrammingError: (ProgrammingError) syntax error at or near "user"
LINE 1: ALTER TABLE user ADD COLUMN permissions INTEGER
                    ^
 'ALTER TABLE user ADD COLUMN permissions INTEGER' {}

如您所见,它表示存在 SQL 错误,尽管我不知道自己可能做错了什么。

这是执行命令的非常简单的函数:

@staticmethod
def addColumn():
    db.engine.execute('ALTER TABLE user ADD COLUMN permissions INTEGER')

db 对象在其他方面工作得很好,连接或任何类似的东西都没有问题。

我觉得我忽略了一些非常简单的东西,但我就是不知道它是什么。有人知道吗?

【问题讨论】:

  • 将表名放在双引号之间是否有效?另请记住,postgres 名称区分大小写。
  • 就是这样,Hyperboreus!我从来不知道那里需要双引号。谢谢!

标签: python sql flask-sqlalchemy


【解决方案1】:

The PostgreSQL docs 表示USER 是保留关键字,需要引用才能用作标识符。

Key Word      PostgreSQL      SQL 99      SQL 92
USER          reserved        reserved    reserved

【讨论】:

    【解决方案2】:

    user是保留字,需要在SQL语句中特别引用吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 2014-11-04
      • 2022-07-14
      • 1970-01-01
      • 2017-04-03
      相关资源
      最近更新 更多