Я работаю над приложением, использующим python3 и SqlAlchemy для управления базой данных SQLite3. У меня есть несколько таблиц, которые имеют отношение "многие ко многим". Я создал ассоциативную таблицу для обработки этой связи.
Class Machine(Base):
__tablename__ 'machine'
machine_ID = Column(Integer, primary_key=True)
etc...
Class Options(Base):
__tableName__ 'options'
options_ID = Column(Integer, primary_key=True)
etc...
The association table
Machine_Options = table('machine_options', Base.metadata,
Column('machine_FK', Integer, ForeignKey('machine.machine_ID'),
primary_key=True),
Column('options_FK',Integer, ForeignKey('options.options_ID'),
primary_key=True))
Все элементы для машины и опций вставляются независимо. Когда я хочу связать машину с опцией, я использую запрос на добавление, который работает очень хорошо.
Моя проблема в том, когда я хочу разорвать эту связь между машиной и опцией. Я пробовал прямое удаление строки из таблицы ассоциаций с помощью предложения FILTER () в machine_FK и options_FK, но SqlAlchemy выдает ошибку, сообщающую мне, что в таблице Machine_Options нет поля machine_FK. Я попытался удалить строку из Machine_Options косвенно, используя соединения с машиной и таблицей параметров, но получил другую ошибку, которую я не могу удалить или обновить с помощью соединений.
Я ищу код для удаления только строки из таблицы ассоциаций, не затрагивая исходную машину или таблицу параметров.
Пока мой поиск inte rnet оказался бесплодным.