SQLAlchemy中BigInteger与BIGINT有何区别?

时间:2018-07-24 12:11:03

标签: python sqlalchemy

BigInteger

class BigInteger(Integer):

    """A type for bigger ``int`` integers.

    Typically generates a ``BIGINT`` in DDL, and otherwise acts like
    a normal :class:`.Integer` on the Python side.

    """

    __visit_name__ = 'big_integer'

BIGINT

class BIGINT(BigInteger):

    """The SQL BIGINT type."""

    __visit_name__ = 'BIGINT'

但是Column(BigInteger)和Column(BIGINT)都可以工作,都在postgresql中定义了bigint。如何区分它们?

1 个答案:

答案 0 :(得分:3)

它们都可以工作,但是BIGINT必须从特定的方言中导入,例如您的情况下的postgres。如果您将数据库更改为例如。 mysql,您可能有问题。借助BigInteger sqlalchemy来处理映射,具体取决于您使用的数据库,因此您应该更喜欢此映射。