Можно ли корректно получать одновременно результаты нескольких запросов в одной транзакции?
Суть такая: есть куча горутин в которых делается что-то типа tx.Stmtx(request).QueryRow(values...).Scan(&result), tx - общая переменная для всех горутин, и проблема в том, что иногда начинает появляется ошибка "unexpected Bind response 'D'", есть ли способ избавиться от нее? (кроме очевидного варианта с мьютексом на транзакцию)
Очевидно, что объект транзакции непотокобезопасен :)
Тут возможны только такие решения:
1) Не использовать многопоточность.
2) Блокировать мьютексом на запись перед добавлением данных.
3) Заполнять транзакцию только из 1й горутины, а аргументы передавать через буферизированный канал.