MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / Index

Class Index

lib/sqlalchemy/sql/schema.py:5536–5755  ·  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

5534
5535
5536class Index(
5537 DialectKWArgs, ColumnCollectionMixin, HasConditionalDDL, SchemaItem
5538):
5539 """A table-level INDEX.
5540
5541 Defines a composite (one or more column) INDEX.
5542
5543 E.g.::
5544
5545 sometable = Table(
5546 "sometable",
5547 metadata,
5548 Column("name", String(50)),
5549 Column("address", String(100)),
5550 )
5551
5552 Index("some_index", sometable.c.name)
5553
5554 For a no-frills, single column index, adding
5555 :class:`_schema.Column` also supports ``index=True``::
5556
5557 sometable = Table(
5558 "sometable", metadata, Column("name", String(50), index=True)
5559 )
5560
5561 For a composite index, multiple columns can be specified::
5562
5563 Index("some_index", sometable.c.name, sometable.c.address)
5564
5565 Functional indexes are supported as well, typically by using the
5566 :data:`.func` construct in conjunction with table-bound
5567 :class:`_schema.Column` objects::
5568
5569 Index("some_index", func.lower(sometable.c.name))
5570
5571 An :class:`.Index` can also be manually associated with a
5572 :class:`_schema.Table`,
5573 either through inline declaration or using
5574 :meth:`_schema.Table.append_constraint`. When this approach is used,
5575 the names
5576 of the indexed columns can be specified as strings::
5577
5578 Table(
5579 "sometable",
5580 metadata,
5581 Column("name", String(50)),
5582 Column("address", String(100)),
5583 Index("some_index", "name", "address"),
5584 )
5585
5586 To support functional or expression-based indexes in this form, the
5587 :func:`_expression.text` construct may be used::
5588
5589 from sqlalchemy import text
5590
5591 Table(
5592 "sometable",
5593 metadata,

Calls

no outgoing calls