【问题标题】:What is the sqlalchemy equivalent column type for 'money' and 'OID' in Postgres?Postgres中'money'和'OID'的sqlalchemy等效列类型是什么?
【发布时间】:2010-09-26 10:36:34
【问题描述】:

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

【问题讨论】:

    标签: python postgresql sqlalchemy


    【解决方案1】:

    这就是我能找到的全部内容:http://docs.sqlalchemy.org/en/rel_0_9/core/types.html

    如果您愿意,您也可以制作自己的类型。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        来自这个link的论点 最后的结论是:

        由于存储和算术的不精确性,将 FLOAT 用于货币金额是一个非常糟糕的主意。 不鼓励使用 MONEY,因为它对语言环境过于敏感 应使用 NUMERIC 代替

        【讨论】:

        • Python sqlalchemy.Numeric() 示例here - '''Column("amount", Numeric(10, 2), nullable=True)'''
        猜你喜欢
        • 2020-05-17
        • 1970-01-01
        • 1970-01-01
        • 2020-03-02
        • 2012-12-21
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 2020-06-08
        相关资源
        最近更新 更多