Композитный индекс SQLALCHEMY с более низкимPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Композитный индекс SQLALCHEMY с более низким

Сообщение Anonymous »

Мне нужно создать композитные индексы на столбцах fast_name и first_name столбцов большой таблицы под названием People
Мне нужно искать с помощью единого поля, которое называется именем , который может соответствовать ни одного, так и последнему. />

Код: Выделить всё

SELECT *
FROM people AS p
WHERE
LOWER(p.last_name || p.first_name) LIKE :name
OR
LOWER(p.first_name || p.last_name) LIKE :name
< /code>
Моя модель < /p>
import sqlalchemy as sa
from sqlalchemy.orm import Mapped, mapped_column

class People(DeclarativeBase):
__tablename__ = "people"

id: Mapped[str] = mapped_column(primary_key=True)
first_name: Mapped[str] = mapped_column(nullable=False, unique=False)
last_name: Mapped[str] = mapped_column(nullable=False, unique=False)

__table_args__ = (
sa.Index(
"ix_people_last_first_name",
sa.text("LOWER(last_name || first_name)"),
),
sa.Index(
"ix_people_first_last_name",
sa.text("LOWER(first_name || last_name)"),
),
)
< /code>
Когда я генерирую миграцию с алембиком, я получаю < /p>
INFO  [alembic.autogenerate.compare] Detected added table 'people'
INFO  [alembic.autogenerate.compare] Detected added index ''ix_people_first_last_name'' on '()'
INFO  [alembic.autogenerate.compare] Detected added index ''ix_people_last_first_name'' on '()'
Как вы можете видеть, индексы не применяются к столбцам (S)
Sqlalchemy говорит, что здесь можно использовать более низкий в индексе, но он показывает простой случай, а не композитный.

Код: Выделить всё

the text() construct may be used to specify Index expressions, provided the Index is explicitly associated with the Table.

Как это я могу достичь?
Любые предложения или другие варианты приветствуются.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... with-lower
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Композитный индекс SQLALCHEMY с более низким
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как лучше всего добавить композитный индекс и отбросить старый индекс в MySQL?
    Anonymous » » в форуме MySql
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Композитный фильтр хранилища данных ИЛИ запрос
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Передаваемое на композитный
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Передаваемое на композитный
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»