Я использую функцию 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 ...)?