![]() |
Select Insert... Hola, ¿es posible hacer esto directamente sin tener que usar un procedimiento o funcion? Tabla A --------- ID - Descripcion 1 - A 2 - B 3 - C 4 - D 5 - E Hacer un INSERT sobre la tabla A siempre y cuando no exista ese valor ya -normalmente pegaria una excepción-, osea... SELECT Descripcion CASE Descripcion WHEN Descripcion = NULL THEN INSERT INTO a VALUES(MAX(id) + 1, ?valor) FROM a WHERE Descripcion = 'C'; En este caso no lo deberia insertar, ya que existe... en caso contrario sí. ¿Esto está bien? ¿alguna sugerencia?. Muchas gracias, saludos!! |
Re: Select Insert... Creo que con... insert into A (id, descriocion) select '5', descripcion from A where descripcion not exist (select descripcion from A) and descripcion = 'D' Insertaria 5, D ya que ese código no existe. ¿alguien opina como hacerlo más óptimo? |
Re: Select Insert... Hola CDj, creo que lo ideal sería poner el campo descripción como UNIQUE, si realmente no quieres que nunca se repitan, de manera que al hacer la insert de manera habitual captures la excepción y decidas por código qué hacer. Si se trata de un caso particular o quieres hacerlo con un script sin bloques PL-SQL, entonces puedes hacerlo de la siguiente manera: Código: Cita:
Un saludo. |
| La zona horaria es GMT -6. Ahora son las 20:44. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.