如何使用 python 更改 psycopg2 中的小数位数和精度?

How to alter decimal scale and precision in psycopg2 using python?

我正在使用包含以下代码的脚本

    query = """ALTER TABLE table_name ALTER COLUMN column_name NUMERIC (22,6);"""
    
    self.cursor.execute(query)
    self.connection.commit()

但我得到下面的错误

psycopg2.errors.SyntaxError: syntax error at or near "NUMERIC"

你遇到过这样的错误吗?我在网上搜了下,什么都没有。

PS:我使用了DECIMAL而不是Numeric,出现同样的错误

如果您查看 the PostgreSQL documentation for ALTER TABLE,您会发现您需要使用 TYPE 关键字(强制):

ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ]
      [ USING expression ]
ALTER TABLE table_name ALTER COLUMN column_name TYPE NUMERIC (22,6)

此外,此错误表明这是来自 PostgreSQL 的语法错误。实际上,您的问题与 Python 或 Psycopg2:

无关
psycopg2.errors.SyntaxError: syntax error at or near "NUMERIC"