Oracle - Subconsulta en un Insert

 
Vista:

Subconsulta en un Insert

Publicado por Lorena Rojas (1 intervención) el 10/09/2006 22:00:29
Hola, gracias de antemano, he encontrado una subconsulta dentro de un insert into, el ejemplo es el siguiente:

INSERT INTO (SELECT * FROM dept WHERE deptno = 10)
VALUES (50, 'MARKETING', 'FORT WORTH');

pero sinceramente no la entiendo y ademas para que puedo usar este tipo de insert.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Subconsulta en un Insert

Publicado por Pedro (20 intervenciones) el 11/09/2006 13:01:45
Hola,

Eso es lo mismo que insertar en una vista, de hecho el optimizador te pondra algo asi como INLINE VIEW o algo parecido en el explain plan.

Esta sentencia no tiene mucho sentido, haria exactamente lo mismo que esta:
INSERT INTO dept
VALUES (50, 'MARKETING', 'FORT WORTH');

A mi modo de ver las INLINE VIEWS solo tienen sentido si se le añade la clausula WITH CHECK OPTION, de esta forma esta sentencia:

INSERT INTO (SELECT * FROM dept WHERE deptno = 10 WITH CHECK OPTION)
VALUES (50, 'MARKETING', 'FORT WORTH');

Fallaría, ya que estás intentando insertar un departamento 50 cuando solo se pueden insertar departamentos 10 a traves de esa consulta.

Espero haberte ayudado,
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar