170 похожих чатов

Доброй ночи Вопрос, конечно, наполовину по Го, но подскажите, пожалуйста Функция на

создание создание роли в базе с нужными правами.
0. Открытие транзации (dbTx, err := repo.db.Begin())
1. Создаётся роль, возвращаются RETURNING (role_id, name, is_admin);
2. Создаётся пермишены, используя: INSERT INTO role_permission(role_id, scope, access)
3. Коммит (dbTx.Commit())

Проблема:
role_id = 0 во время создания пермишенов (шаг 2), т.к. коммит идёт только только в конце функции, и роль по факта не создана. Вопрос, как можно "создать" роль внутри транзации без коммита?

Пакедж github.com/jmoiron/sqlx

11 ответов

11 просмотров

role_id autoincrement?

ShiroNoHaga- Автор вопроса
Web
role_id autoincrement?

Сейчас проверю на всякий

ShiroNoHaga- Автор вопроса

А почему не хотите в разных коммитах сделать?

ShiroNoHaga- Автор вопроса
Web
А почему не хотите в разных коммитах сделать?

Можно и в разных, просто хотел узнать можно ли в одной

ShiroNoHaga
Можно и в разных, просто хотел узнать можно ли в о...

Выходит, что можно https://stackoverflow.com/questions/40675365/get-back-newly-inserted-row-in-postgres-with-sqlx/56787271#56787271

ShiroNoHaga- Автор вопроса
Web
Выходит, что можно https://stackoverflow.com/ques...

Супер, спасибо большое ) Пошёл читать

ShiroNoHaga
Супер, спасибо большое ) Пошёл читать

Поскольку у вас autoincrement, то похоже нельзя за один коммит сделать. Нужно у профи спросить🧚

ShiroNoHaga
Можно и в разных, просто хотел узнать можно ли в о...

Скорее всего, что в одной нельзя. У тебя же сама БД подставляет значение. А запросы идут после коммита

ShiroNoHaga- Автор вопроса
ShiroNoHaga- Автор вопроса
Stanislav DragonSov
Скорее всего, что в одной нельзя. У тебя же сама Б...

Просто пришёл из питона и там использовал sqlalchemy, а там есть session.flush(), который обновляет объекты в транзакции. Но сейчас смотрю что они используют подтранзацию и что-то ещё мутят, так что да, за один запрос точно не получатся

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
52
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
буквально один оставшийся вопрос при выполнении строчки mov eax, 5 операнд "5" будет присутствовать где-либо в памяти (любой), кроме как в памяти блока .code? подвопрос: как...
12
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
я не понимаю mov [r11+8],rcx и прочие. мы записываем значение из rcx, куда?
Bor
15
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
5
А какие расширения активно используются в промышленности? Именно идейные, по типу гадт, а не всякие оверлоадедстрингс
Степан
11
у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше): - "п1" --- виртуальный адрес, то есть тот, который ресолвится в "п...
Toideng
3
Guys Who’s kurdish on this group?
Hiwa Amiri
11
Карта сайта