SQLModel-Beispiel: Benutzerdefinierter Index über einer Spalte

English Deutsch

Im folgenden Beispiel erstellen wir einen benutzerdefinierten SQLModel-Index über einer einzelnen Spalte.

Option 1: Direkt im Feld

Dies wird für einspaltige Indizes aufgrund seiner Einfachheit empfohlen.

Fügen Sie einfach den index=True-Parameter zum Feld hinzu:

sqlmodel_custom_index.py
from sqlmodel import SQLModel, Field

class Offer(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    seller: str = Field(description="Name of the seller", index=True)

Sie können den name-Parameter von UniqueConstraint nach Belieben wählen. Er wird verwendet, um die Einschränkung in der Datenbank zu benennen.

Option 2: Verwendung von __table_args__

Dies wird für mehrspaltige Indizes (auch zusammengesetzte Indizes genannt) empfohlen.

sqlmodel_custom_index.py
from sqlmodel import Index, SQLModel, Field

class Offer(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    seller: str = Field(description="Name of the seller")
    url: str = Field(description="URL to the product page for this seller")

    __table_args__ = (
        Index('idx_seller', 'seller', 'url'),
    )

Check out similar posts by category: SQLModel, Python, Database