Обновление SQLite устанавливает значение столбца вместо заданного значения. Как это исправить?

Я пытаюсь обновить некоторые значения в таблице sqlite. В запросе на обновление, если некоторые поля имеют имя столбца таблицы, значение заканчивается как значение этого столбца, а не заданное значение.

Я пытался найти ответ на другой вопрос, но не нашел. Я не знаю, упускаю ли я здесь концепцию или есть ограничение sqlite.

Моя таблица выглядит так:

CREATE TABLE product (
    id INTEGER PRIMARY KEY,
    name TEXT,
    barcode TEXT,
    sku TEXT
)

Допустим, я добавляю пример продукта со следующим запросом:

INSERT INTO product (id, name, barcode, sku) VALUES (1, "Product Example", "2095063206626", "SKU912132151")

Всякий раз, когда я пытаюсь обновить его с помощью запроса, который включает значение, которое ссылается на имя столбца, например:

UPDATE product SET name = "Product edited", barcode = "ID", sku = "BARCODE" WHERE id = 1

Он устанавливает значение как текущее значение столбца для данной строки, и я получаю этот объект в базе данных:

{
    "id" = 1
    "name" = "Product edited"
    "barcode" = 1
    "sku" = "2095063206626"
}

И я действительно ожидаю этого:

{
    "id" = 1
    "name" = "Product edited"
    "barcode" = "ID"
    "sku" = "BARCODE"
}

Есть идеи?

В SQL двойные кавычки предназначены для идентификаторы, как и столбец с именем ID. Одинарные кавычки предназначены для строк. Вы устанавливаете barcode значение столбца ID.

Shawn 29.05.2019 00:52

@Shawn Поскольку я использовал angular, я использовал одинарные кавычки для идентификации строки запроса и двойные кавычки для строковых полей запроса. Я попробую изменить одинарные кавычки и посмотреть, исправит ли это. Большое спасибо.

Vysera 29.05.2019 01:21
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
2
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема была вызвана использованием двойных кавычек для строк в запросе. Двойные кавычки используются для идентификаторов в sqlite, как указал @Shawn.

Другие вопросы по теме