我正在使用 SQLAlchemy 1.3.4 和 PostgreSQL 11.3。
\n\n我有以下(简化的)表定义:
\n\nclass MyModel(Base):\n __tablename__ = \'mymodel\'\n\n id = Column(Integer, primary_key=True)\n col1 = Column(Unicode, nullable=False)\n col2 = Column(Unicode, nullable=False)\n col3 = Column(Unicode, nullable=False)\n col4 = Column(Boolean)\n\n created_at = Column(DateTime(timezone=True), nullable=False)\n updated_at = Column(DateTime(timezone=True), nullable=False)\n\n __table_args__ = (\n Index(\'uq_mymodel_col1_col2_col3_col4\',\n col1, col2, col3, col4,\n unique=True, postgresql_where=col4.isnot(None)),\n Index(\'uq_mymodel_col1_col2_col3\',\n col1, col2, col3,\n unique=True, postgresql_where=col4.is_(None)),\n )\nRun Code Online (Sandbox Code Playgroud)\n\n(我必须创建 2 个唯一索引而不是 a,UniqueConstraint因为 aUniqueConstraint将允许多行具有相同的(col1, col2, col3)iscol4为空,这是我不想要的)
我正在尝试执行以下查询:
\n\nINSERT INTO mymodel …Run Code Online (Sandbox Code Playgroud)