validar update tablas registro insertar existe ejemplo oracle

tablas - update oracle ejemplo



Instrucción de inserción de Oracle si no existe (3)

La forma correcta de insertar algo (en Oracle) basada en otro registro ya existente es mediante el uso de la instrucción MERGE .

Tenga en cuenta que esta pregunta ya ha sido respondida aquí en SO:

insert into OPT (email, campaign_id) values(''[email protected]'',100) where not exists( select * from OPT where (email ="[email protected]" and campaign_id =100)) ;

Informe de error: Error SQL: ORA-00933: el comando SQL no terminó correctamente 00933. 00000 - "El comando SQL no terminó correctamente" * Causa:
*Acción:

¿Cómo insertar una nueva fila si no existe en Oracle?


insert into OPT (email, campaign_id) select ''mom@coxnet'' as email, 100 as campaign_id from dual MINUS select email, campaign_id from OPT;

Si ya hay un registro con [email protected] / 100 en OPT, la MINUS restará este registro del select ''mom@coxnet'' as email, 100 as campaign_id from dual registro select ''mom@coxnet'' as email, 100 as campaign_id from dual y no se insertará nada. Por otro lado, si no existe tal registro, el MINUS no restará nada y se insertarán los valores mom@coxnet / 100 .

Como p.marino ya ha señalado, la merge probablemente sea la mejor (y más correcta) solución para su problema, ya que está específicamente diseñada para resolver su tarea.