Я вставил в таблицу PostgreSQL UUID, созданный с помощью go.uuid:
import (
"github.com/satori/go.uuid"
)
func main() {
usid := uuid.Must(uuid.NewV4())
fmt.Println("usid := uuid.Must(uuid.NewV4")
fmt.Println(usid.String())
res, err := stmt.Exec(cn, csn, ccn, id)
if err != nil || res == nil {
log.Fatal(err)
}
}
sStmt := "insert into basicuserinfo (cn, csn, ccn, appUserAccountID )
values ($1, $2, $3, $4)"
stmt, err := db.Prepare(sStmt)
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
fmt.Println("# Inserting values")
А на самом деле в postgreSQL вставлена строка:
cn | csn | ccn | id
| 2412fcd3-8712-4a0f-830a-d77bd4cf2195
Чтобы запросить переменные Голанга, я сначала попытался использовать подготовленный оператор.
Во-первых, используя db.PrepareContext:
sel := "SELECT appUserAccountID FROM basicuserinfo WHERE cn = $1 AND csn
= $2 AND ccn = $3"
stmt, err = db.PrepareContext(ctx,sel)
if err != nil {
log.Fatal(err)
}
var utenteID string
err = stmt.QueryRowContext(ctx,cn, csn, ccn).Scan(&utenteID)
log.Printf("ID= %s\n", utenteID)
fmt.Println("aaaaaaaaa") // Just to check that the this line gets executed
Чье выполнение остается «бездействующим», в режиме ожидания, без завершения и выдачи какого-либо вывода:
marco@pc01:~/go/marcoGolang/goPostgres$ go run pqExample00.go
# Inserting values
Затем я попытался таким образом, с помощью db.Prepare ():
stmt, err = db.Prepare(sel)
if err != nil {
log.Fatal(err)
}
res, err = stmt.Exec(cnv, csnv, ccnv)
Во втором случае кажется, что выполнение успешно завершается, но я не знаю, как преобразовать sql.Result в правильную форму, которую можно обработать, например, просто отобразить с помощью fmt.Println () или получить другие обработки.
Итак ... как правильно запрашивать и обрабатывать UUID, созданный с помощью go.uuid и вставленный в PostgreSQL 11?
Надеюсь на вашу помощь.
Marco