есть такая модель:
class ServerModel(AbstractModel):
id: Mapped[int] = mapped_column("id", Integer(), primary_key=True, autoincrement=True)
mac_address: Mapped[str] = mapped_column("mac_address", String(17), nullable=False)
id генерируется автоматически самой БД, а mac_address можно сгенерировать только через id через функцию generate_mac_address(id). То есть мне нужно сначала заполнить mac_address каким то значением, закоммитить, и изменить запись с учётом нового id. Возможно ли как нибудь этого избежать, чтобы в один запрос запись создавалась?
Можно. Создавай айди в питоне
Как питон узнает что id не занят в бд? Это же autoincrement.
Зачем автоинкремент?
Ну вон там integer autoincrement в модели
А зачем туда айди передавать? generate_mac_address(id)
Хз я почему то мак решил генерировать от id. Мож потом переделаю) print(generate_mac_address(1)) 52:54:00:00:00:01
Сделал бы сразу и мак автоинкрементом
Так мак может быть отличным от id. Строкой храню.
Так если он одназначно от айди генерируется зачем его хранить?)
Может быть другим.
Так в последовательных айди могут быть пропуски
В постгресе есть специальный тип под мак адрес
Обсуждают сегодня