Добавление в бд по критерию

В общем хочу добавить данные в бд по критерию, т.е. допустим insert into Table (name) values("value") where id=2, но в этой команде нельзя использовать where. Как быть?


Ответы (1 шт):

Автор решения: Akina

Надо использовать не INSERT .. VALUES, а INSERT .. SELECT, который допускает WHERE clause в SELECT-части.

То есть формально это будет

insert into Table (name) 
SELECT "value" 
where id=2

Понятно, что именно этот запрос не будет выполнен - ибо сервер вполне ожидаемо спросит "А что это за id и откуда его брать?". И будет прав - в моём коде в предложении SELECT отсутствует источник данных (FROM).

Хотя если дело происходит в процедуре/функции, то это может быть локальная переменная, тогда запрос выполнится.

→ Ссылка