Postgres中'money'和'OID'的sqlalchemy等效列类型是什么?

JV.*_*JV. 7 python postgresql sqlalchemy

Postgres中'money'和'OID'列类型的sqlalchemy等效列类型是什么?

zzz*_*eek 5

我们从来没有专门的“OID”类型,尽管我们在 0.4 系列中支持每个表上隐式“OID”列的概念,主要是为了 postgres 的好处。然而,由于 Postgres 中不推荐使用用户表定义的 OID 列,而且我们实际上从未真正使用过现有的 OID 功能,因此我们已从库中删除了此功能。

如果 SQLA 中未提供特定类型,作为指定自定义类型的替代方法,您始终可以使用 NullType,这意味着 SQLA 不知道有关该类型的任何特定信息。如果 psycopg2 已经发送/接收了该列的有用 Python 类型,则实际上不需要 SQLA 类型对象,除了发出 CREATE TABLE 语句。


Has*_*mal 5

从此链接的论点 中得出的最终结论是:

由于存储和算术的不精确性,使用FLOAT表示货币金额是一个非常糟糕的主意。不建议使用MONEY,因为它对区域设置过于敏感,而应使用NUMERIC代替

  • Python sqlalchemy.Numeric() 示例[此处](https://www.programcreek.com/python/example/81132/sqlalchemy.Numeric) - '''Column("amount", Numeric(10, 2), nullable=真的)''' (2认同)