2010-12-09 3 views
0

Я хочу сделать этообновление SQL и вставить

UPDATE CATALOGUE 
SET CATALOGUE.NUMBERINSTOCK=NUMBERINSTOCK-1 
WHERE CATALOGUE.ITEMID =(SELECT ALBUM.ALBUM_ID 
         FROM ALBUM 
         WHERE ALBUM.TITLE = '20 People in a Field' 
           AND IS_DISTRIBUTED_AS ='c') 

и это

INSERT INTO ORDERELEMENT VALUES (1,10,12,17) 

если это правда

(SELECT NUMBERINSTOCK 
FROM CATALOGUE 
WHERE CATALOGUE.ITEMID =(SELECT ALBUM.ALBUM_ID 
          FROM ALBUM 
          WHERE ALBUM.TITLE = '20 People in a Field' 
            AND IS_DISTRIBUTED_AS ='c')) > 0 

У меня проблема состоит в поиске, как сделать условный в SQL-запросе, а также как выполнить обновление и вставить как часть одного запроса.

Я должен делать все это как один запрос.

+0

Почему в одном запросе? – 2010-12-09 14:20:44

+0

Я делаю курс баз данных, и это часть одного из вопросов, которые я нашел, остальное в порядке, но каждый путь я пытаюсь решить эту проблему, я получаю ошибки :( – hactf 2010-12-09 14:27:42

ответ

0

Вы не можете обновить одну таблицу и вставить другую таблицу в один оператор. Можно условно выполнить ОБНОВЛЕНИЕ, если вы укажете предложение WHERE. Вы можете выполнить то же самое со вставкой (детали зависят от dbms).

Однако вы можете создать хранимую процедуру, содержащую вашу условную логику. Вызов этой процедуры может считаться «одним» утверждением?

Смежные вопросы