Есть ли в SQLAlchemy встроенная функция для установки следующей последовательности? - PullRequest
0 голосов
/ 28 марта 2020

Я использую функцию bulk_insert_mappings со словарем, содержащим все мои объекты. Мне нужно установить идентификатор непосредственно в данных:

session.bulk_insert_mappings(
    User,
    [
        dict(id=i+1, name=name)
        for i in range(100000)
    ]
)

Проблема в том, что первичный ключ не автоматически увеличивается в PostgreSQL:

db=# SELECT nextval('user_id_seq');                                                                                                                                        nextval
---------
   1
(1 row)

Я могу выполнить следующее запрос сразу после моей массовой вставки:

SELECT setval('user_id_seq', (SELECT MAX(id) FROM users));

Но это будет работать только для PG. Знаете ли вы, если в SQLAlchemy существует функция, обрабатывающая все базы данных (MySQL, Oracle, MS- SQL ...)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...