|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/12146e4cd503f.html, оценка из 5, голосов 10
|