Главная страница


su.dbms.sql

 
 - SU.DBMS.SQL ------------------------------------------------------------------
 From : Alik Ponomaryov                      2:5015/27      21 Mar 2001  00:09:07
 To : All
 Subject : Re: Как тут применить EXISTS или что-то в этом роде?
 -------------------------------------------------------------------------------- 
 
 
 >Есть такая задачка:
 >Hужно проконтролировать табличку на наличие записи (какой-то критерий). Если
 >запись есть, то нужно её модифицировать, а если нет, то добавить новую.
 >Я ничего лучше не придумал, чем сделать так:
 >1. Извлекается count(*) записей, удовлетворяющих условию.
 >2. Если результат >0, то п.3, иначе п.5.
 >3. извлекается ID записи, удовлетворяющей условию.
 >4. Производится модификация записи, удовлетворяющей условию. Конец.
 >5. Вставляется новая запись. Конец.
 [ Здесь был Skip ]
 
 >/* Проверим, есть ли такая запись в базе */
 >    SELECT count(*) INTO nSys_ind FROM opt_cyord
 >         WHERE
 >           order_number = iOrder_num AND
 >           op_number = iOp_number AND
 >           TRUNC(day) = dDate;
 >
 >    IF nSys_ind <>0 THEN /* Такая запись есть */
 >      SELECT sys INTO nSys_ind FROM opt_cyord
 >         WHERE
 >           order_number = iOrder_num AND
 >           op_number = iOp_number AND
 >           day = dDate;
 >
 >
 
 А-а-а, судя по приведенному коду, просто
   UPDATE opt_cyord
     SET ...
     WHERE
       order_number = iOrder_num AND
       op_number = iOp_number AND
       day = dDate;
   IF SQL%ROWCOUNT <= 0 THEN
     INSERT INTO opt_cyord
       ...
   END IF;
 он, что, не проходит?
 
 Естественно, это все только для PL/SQL.
 
 Алик.
 --- Microsoft Outlook Express 4.72.3110.5
  * Origin: Мы рождены, чтоб Кафку сделать былью... (2:5015/27.24@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Как тут применить EXISTS или что-то в этом роде?   Alik Ponomaryov   21 Mar 2001 00:09:07 
Архивное /su.dbms.sql/12146e4cd503f.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional