Sobes.tech
Back to questions
Junior — Middle
66

Можно ли создать уникальный составной индекс в базе данных?

Answer from AI

sobes.tech AI

Да, в базах данных можно создать уникальный составной индекс, который обеспечивает уникальность комбинации значений нескольких столбцов.

Например, в SQL:

CREATE UNIQUE INDEX idx_unique_name_email ON users (name, email);

Это гарантирует, что в таблице users не будет двух строк с одинаковой комбинацией name и email.

Составной уникальный индекс полезен, когда уникальность не определяется одним полем, а комбинацией нескольких.

В ORM, например в SQLAlchemy (Python), это можно задать так:

from sqlalchemy import UniqueConstraint

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    email = Column(String)

    __table_args__ = (
        UniqueConstraint('name', 'email', name='uix_name_email'),
    )

Таким образом, уникальный составной индекс — стандартная практика для обеспечения уникальности по нескольким колонкам.