我在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
对象在其他情况下工作正常,并且连接或任何类型的任何东西都没有错。
我觉得我忽略了一些非常简单的东西,但我无法弄清楚它是什么。有人有任何想法吗?
答案 0 :(得分:2)
The PostgreSQL docs说USER
是保留关键字,需要引用它作为标识符。
Key Word PostgreSQL SQL 99 SQL 92
USER reserved reserved reserved
答案 1 :(得分:1)
user
是保留字,因此需要在SQL语句中特别引用吗?