Как решить: диалект 'default' не поддерживает приращения последовательности в SQLAlchemy - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть следующие запросы:

seq = select([tab_setup.columns.ID]).order_by(tab_setup.columns.ID).limit(1)

sel = select([tab_Global.columns.ID_UNIQUE.label('DL_ID'), tab_Global.columns.CV_CNV.label('DL_Conv')]) \
        .where(tab_Global.columns.CV_CNV.isnot(None))

stmt = tab_setup.insert().from_select(['DL_ID', 'DL_Conv',next_value(Sequence(seq))] , sel)

Насколько я понял, проблема связана с автозаполнением поля ID (автоинкремент) в таблице "tab_setup".Какой правильный способ передачи значений?

Поле идентификатора является обычным полем автоинкремента, равным 1 на строку.

При использовании только функции «Последовательность» возникает ошибка, которая предполагаетиспользовать "next_value"

Спасибо

1 Ответ

0 голосов
/ 04 февраля 2019

Решение, которое я нашел, было добавить в запрос на выборку:

func.row_number (). Over (order_by = tab_Global.columns.ID_UNIQUE)). Label ('ID')

Это сгенерирует порядковый номер для любой строки;затем, если начальный номер не равен 1, я создаю переменную start_from = 10 и завершаю вышеупомянутое с помощью: (start_from + func.row_number () ...)

...