Подтвердить что ты не робот

Вставка значений в определенные строки с помощью SQL

У меня есть таблица деталей байка, и я хочу добавить разные цены к различным типам велосипедов, используя SQL-запросы, но то, что я даю мне синтаксическую ошибку:

INSERT INTO bike (full_day)
VALUES (10)
WHERE bike_type = 'mens_hybrid';

Что не так с этим кодом?

4b9b3361

Ответ 1

Оператор INSERT предназначен только для создания совершенно новых записей, а не для заполнения данных в существующих. Что вам нужно, это инструкция UPDATE, которая обновляет существующую запись:

UPDATE bike SET full_day = 10 WHERE bike_type = 'mens_hybrid';

(Примечание: ниже приведена более ранняя версия этого ответа, прежде чем мне было ясно, что пытался сделать оригинальный плакат. Я оставляю это здесь, потому что несколько человек, которые первоначально ответили на этот вопрос, похоже, не замечали проблема с записью INSERT ... VALUES (...) WHERE, что заставляет меня думать, что это объяснение может быть полезно для некоторых людей, сталкивающихся с этим вопросом.)


Это утверждение не имеет смысла. INSERT не может принимать предложение WHERE, потому что WHERE относится к существующим записям, а INSERT создает новые.

(Чтобы предотвратить потенциальную путаницу: существует такая вещь, как INSERT INTO ... SELECT ..., где записи для вставки определяются запросом SELECT, а не выражением VALUES, и в этом случае запрос SELECT может, конечно, иметь предложение WHERE. Но ни в коем случае предложение WHERE не относится к оператору INSERT.)