syamskoy
@syamskoy

Почему не сетится значение из БД в структуру в поле uint?

Использую библиотеку SQLX, и метод Get из нее же. База SQLite

Код предельно простой.

CREATE TABLE "member"
(
    user_id    integer,
    i_size     integer  default 0,
    constraint member_pk
        primary key (user_id)
);

INSERT INTO member (user_id, i_size) VALUES (1, -10);


type Record struct {
	UserId    int64     `db:"user_id"`
	Size      uint8     `db:"i_size"`
}

// ...

var record Record
sqlStmt := `select user_id, i_size from member where user_id = $1`
err := r.Conn.Get(&record, sqlStmt, userId)


Получаю ошибку sql: Scan error on column index 1, name "i_size": converting driver. Value type int64 ("-10") to a uint8: invalid syntax

Гугл с ошибкой не помог :(
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@calculator212
Гугл с ошибкой не помог :(

sql: Scan error on column index 1, name "i_size": converting driver. Value type int64 ("-10") to a uint8: invalid syntax
Можно попробовать еще прочитать ошибку или засунуть ее в гугл переводчик.
Проблема тут не с sqlx, а с тем, что ты хочешь запихнуть в поле uint отрицательное значение, на что база тебе выдает ошибку(так и должно быть). Если нужны отрицательные значения в базе то используй просто int
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
17 нояб. 2024, в 18:45
1500 руб./за проект
17 нояб. 2024, в 18:39
100000 руб./за проект
17 нояб. 2024, в 18:29
15000 руб./за проект