SQLAlchemy索引名称唯一

时间:2018-07-24 21:57:40

标签: python sqlalchemy

我正在用index = True构建一个表,在这里我希望名称始终是唯一的索引名称,可以使用UUID作为后缀..像ix__uuid

下面我的表创建代码

    add = Table('src_add_lookup', metadata,
                Column('id', Integer, Sequence('seq_add', schema='can'), primary_key=True, index=True)

metadata.drop_all(engine, tables=[add]) # using 'tables' param to only create the necessary table
metadata.create_all(engine, tables=[add]) 

这将始终创建一个我希望避免的名为ix_src_add_lookup_id的索引。

是否有某种方法可用于这种事情?

1 个答案:

答案 0 :(得分:0)

最后将Index api与uuid()lib一起使用以生成所需的唯一索引名称,如下面的代码。

from sqlalchemy import Index

add = Table('src_add_lookup', metadata,
            Column('id', Integer, Sequence('seq_add', schema='can'), primary_key=True)

Index('idx_add_{}'.format(uuid.uuid4().hex), add.c.id, unique=True)