ebe*_*bis 6 python mysql indexing sqlalchemy
我想在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;
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
但我找不到任何可以定制索引限制的内容.就像是:
some_text = sa.Column(sa.String(2048), index=True, index_length=1024)
Run Code Online (Sandbox Code Playgroud)
我想因为Column构造函数的这个选项只是构造函数的别名Index,是否有一个自定义参数包含在Index构造函数中以允许此设置?
谢谢!
小智 9
我想你可以这样做:
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))
Run Code Online (Sandbox Code Playgroud)
参考:http: //docs.sqlalchemy.org/en/latest/dialects/mysql.html#index-length
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |