gpt4 book ai didi

python - 在 SQLAlchemy 中设置索引限制

转载 作者:太空狗 更新时间:2023-10-29 22:21:22 29 4
gpt4 key购买 nike

我想在 Column 定义中或仅通过 Index 构造函数为索引设置最大限制,但我似乎找不到办法实现它。

基本上,我想模拟这个 MySQL 行为:

CREATE TABLE some_table (
id int(11) NOT NULL AUTO_INCREMENT,
some_text varchar(2048) DEFAULT NULL,
PRIMARY KEY (id),
KEY some_text (some_text(1024)), # <- this line
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;

在 SQLAlchemy 中我会有类似的东西:

class SomeTable(BaseModel):
__tablename__ = 'some_table'
__seqname__ = 'some_table_id_seq'

id = sa.Column(sa.Integer(11), sa.Sequence(__seqname__), primary_key=True)
some_text = sa.Column(sa.String(2048), index=True) # <- this line

但我找不到任何建议可以自定义索引限制的内容。像这样的东西:

some_text = sa.Column(sa.String(2048), index=True, index_length=1024)

我想因为 Column 构造函数的这个选项只是 Index 构造函数的别名,是否有自定义参数包含在 Index 构造函数允许此设置?

谢谢!

最佳答案

我想你可以这样做:

class SomeTable(BaseModel):
__tablename__ = 'some_table'
__seqname__ = 'some_table_id_seq'
__table_args__ = (
sa.Index("idx_some_text", "some_text", mysql_length=1024),
)
id = sa.Column(sa.Integer(11), sa.Sequence(__seqname__), primary_key=True)
some_text = sa.Column(sa.String(2048))

引用: http://docs.sqlalchemy.org/en/latest/dialects/mysql.html#index-length

关于python - 在 SQLAlchemy 中设置索引限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39791026/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com