SQLAlchemy: Уникален для нескольких полей с нулевым значением

#python #mysql #sqlalchemy

Вопрос:

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

SQLAlchemy не использует значения null для проверки уникальных ограничений, разрешающих такие записи, как

 (NULL, 1)
(NULL, 1) 
 

именно это и нужно запечатлеть.
Похоже, что «NULL-это не NULL», иначе («NULL-это NULL») он не разрешал бы записи. Таково мое рассуждение.

Как и MySQL, который является базовой базой данных. Есть ли способ решить эту проблему?

Может быть, я мог бы подкласс и переопределить какой-то класс из SQLAlchemy, переопределяющий поведение сравнения с нулем или некоторую конфигурацию для MySQL ?. Я предпочитаю переопределять поведение на уровне SQLAlchemy, чтобы сохранить независимость базы данных приложения.

Я не вводил код определения, так как он выводится из контекста.

Комментарии:

1. Наконец, я поместил код на уровень приложения, чтобы предотвратить объясненное поведение.