Я использую ядро SQLAlchemy и текущее приложение c (dask.dataframe.read_sql_table), мне нужно передать его в виде единственного столбца / можно выбрать в качестве поля индекса. Одна из таблиц, из которых я выбираю, является большой, но имеет только один уникальный ключ, который является составным ключом.
DDL для задействованных столбцов:
CREATE TABLE `TABLENAME` (
`FIRST_ID` int(10) unsigned NOT NULL,
`SECOND_ID` int(10) unsigned NOT NULL,
`OTHER_ID` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`FIRST_ID`,`SECOND_ID`,`OTHER_ID`),
KEY `FK_NAST_SECOND_ID` (`SECOND_ID`),
KEY `FIRST_ID_index` (`FIRST_ID`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8
У меня есть план, если я могу mimi c строковый столбец и иметь logi c, который принимает строковый ввод в указанном шаблоне c FIRST_ID-SECOND_ID-OTHER_ID
, разбивает его на три столбца и выдает значения для каждого столбца, чтобы вместо MySQL получить инструкцию where, которая:
SELECT * from TABLENAME where CONCAT(FIRST_ID,'-',SECOND_ID,'-',OTHER_ID) = "1234-12-0"
(я не Не думаю, что это даже верно, но оно дает представление об этом)
Вместо MySQL получается:
SELECT * from TABLENAME where FIRST_ID = 1234 and SECOND_ID = 12 and OTHER_ID = 0;
Фактическая логика c Я могу выбить себя, просто зная, как Я могу обернуть логи c внутри какой-то фальшивой конструкции столбца - это главная проблема.
Поскольку в этой таблице нет уникальных ключей для одного столбца, это лучшая идея, которую я придумала, поэтому, если есть лучший способ представить ее в SQLAlchemy Core для Dask, то я весь в ушах!