Sql server SQLAlchemy和mssql:如何创建具有多个空值的唯一约束

Sql server SQLAlchemy和mssql:如何创建具有多个空值的唯一约束,sql-server,python-3.x,sqlalchemy,null,unique-constraint,Sql Server,Python 3.x,Sqlalchemy,Null,Unique Constraint,我正在使用SQLAlchemy和MS SQL server,我想创建一个允许多个空值的唯一约束 我知道MS SQL server不会忽略空值,并认为它违反了唯一密钥。 我还知道如何使用SQL代码修复它(请参阅) 但是有没有办法直接用SQLAlchemy做同样的事情呢 这是我的密码: class Referential(db.Model): __tablename__ = "REFERENTIAL" id = db.Column("ID", Integer, primary_k

我正在使用SQLAlchemy和MS SQL server,我想创建一个允许多个空值的唯一约束

我知道MS SQL server不会忽略空值,并认为它违反了唯一密钥。 我还知道如何使用SQL代码修复它(请参阅)

但是有没有办法直接用SQLAlchemy做同样的事情呢

这是我的密码:

class Referential(db.Model):
     __tablename__ = "REFERENTIAL"
     id = db.Column("ID", Integer, primary_key=True, autoincrement=True)
     name = db.Column("NAME", String(100), index=True, unique=True, nullable=False)
     internal_code = db.Column("INTERNAL_CODE", String(50), unique=True, index=True)

提前感谢

MSSQL的实现,在一个唯一的列中允许空值有点奇怪

将sqlalchemy作为sa导入
sa.表格(
sa.Column('Column',sa.String(50),null=True),
sa.Index('uq\u column\u允许为空,'mssql\u其中=sa.text('column NOT NULL'),
)
如果您打算像我一样使用alembic,代码如下:

将sqlalchemy作为sa导入
将alembic作为op导入
创建索引(
name='uq\u column\u name',
表_name='table',
columns=['column'],
mssql_其中=sa.text('列不为空'),
)
这将使用sqlalchemy的文本和
create\u index
mssql\u where=