0

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オブジェクトは完全に機能し、接続などに問題はありません。

非常に単純なものを見落としているように感じますが、それが何であるかわかりません。誰にもアイデアはありますか?

4

2 に答える 2

2

PostgreSQL のドキュメントによると、これUSERは予約済みのキーワードであり、識別子として使用するには引用符で囲む必要があります。

Key Word      PostgreSQL      SQL 99      SQL 92
USER          reserved        reserved    reserved
于 2013-08-05T20:11:54.230 に答える
1

user予約語なので、SQL ステートメントで特別に参照する必要がありますか?

于 2013-08-05T20:10:33.547 に答える