Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/03/2013, 07:05
irla_bcn
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 11 meses
Puntos: 0
create view & create rule

Buenas tardes, soy muy novata en estos temas, intentare explicarme a ver si puedo...
Tengo una base de datos donde quiero hacer una vista de dos tablas del esquema AA que son:

empleados (codigoEmpleado, nombreEmpleado, edadEmpleado, departamento)
departamentos (codigoDepartamento, nombreDepartamento)

departamento y codigoDepartamento es lo mismo.

Quiero hacer una vista en el esquema AA con los datos (codigoEmpleado, nombreEmpleado, edadEmpleado, departamento y nombreDepartamento)

Entonces yo la hago así:

CREATE VIEW AA.vista AS
SELECT empleados."codigoEmpleado", empleados."nombreEmpleado",
empleados."edadEmpleado", empleados.departamento,
departamentos."nombreDepartamento"
FROM AA.empleados, AA.departamentos
WHERE empleados.departamento= empleados."codigoDepartamento";

Y luego quiero hacer una regla de insercion, para insertar empleados a partir de la vista y a la vez que inserte sobre departamentos, entonces pongo:

CREATE RULE ins_vista_n AS
ON INSERT TO AA.vista
DO INSTEAD

INSERT INTO AA.empleados (empleados."codigoEmpleado", empleados."nombreEmpleado", empleados."edadEmpleado", empleados.departamento
VALUES (NEW."codigoEmpleado", NEW."nombreEmpleado", NEW."edadEmpleado", NEW.departamento);

INSERT INTO AA.departamentos (departamentos."NombreDepartamento")
VALUES(NEW."nombreDepartamento");

Y al hacer esto postgreSQL me dice:

ERROR: falta una entrada para la tabla «new» en la cláusula FROM
LINE 2: VALUES (NEW."nombreDepartamento")

Y no se si tengo el error en la vista, o en la regla, a ver si me podeis ayudar. GRACIAS!!!