MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / Index

Class Index

lib/sqlalchemy/sql/schema.py:5144–5355  ·  view source on GitHub ↗

A table-level INDEX. Defines a composite (one or more column) INDEX. E.g.:: sometable = Table( "sometable", metadata, Column("name", String(50)), Column("address", String(100)), ) Index("some_index", sometable.c.name

Source from the content-addressed store, hash-verified

5142
5143
5144class Index(
5145 DialectKWArgs, ColumnCollectionMixin, HasConditionalDDL, SchemaItem
5146):
5147 """A table-level INDEX.
5148
5149 Defines a composite (one or more column) INDEX.
5150
5151 E.g.::
5152
5153 sometable = Table(
5154 "sometable",
5155 metadata,
5156 Column("name", String(50)),
5157 Column("address", String(100)),
5158 )
5159
5160 Index("some_index", sometable.c.name)
5161
5162 For a no-frills, single column index, adding
5163 :class:`_schema.Column` also supports ``index=True``::
5164
5165 sometable = Table(
5166 "sometable", metadata, Column("name", String(50), index=True)
5167 )
5168
5169 For a composite index, multiple columns can be specified::
5170
5171 Index("some_index", sometable.c.name, sometable.c.address)
5172
5173 Functional indexes are supported as well, typically by using the
5174 :data:`.func` construct in conjunction with table-bound
5175 :class:`_schema.Column` objects::
5176
5177 Index("some_index", func.lower(sometable.c.name))
5178
5179 An :class:`.Index` can also be manually associated with a
5180 :class:`_schema.Table`,
5181 either through inline declaration or using
5182 :meth:`_schema.Table.append_constraint`. When this approach is used,
5183 the names
5184 of the indexed columns can be specified as strings::
5185
5186 Table(
5187 "sometable",
5188 metadata,
5189 Column("name", String(50)),
5190 Column("address", String(100)),
5191 Index("some_index", "name", "address"),
5192 )
5193
5194 To support functional or expression-based indexes in this form, the
5195 :func:`_expression.text` construct may be used::
5196
5197 from sqlalchemy import text
5198
5199 Table(
5200 "sometable",
5201 metadata,

Calls

no outgoing calls