
Eliminar Registro: No existe un identificador único para este registro.
Publicado por AlanAuPE (1 intervención) el 09/07/2011 17:26:44
Hola, soy un poco novato el postgresql.
Trabajo desde el PhpPgAdmin desde un host, no tengo instalado postgresql en mi pc el postgresl, lo trabajo del la pagina de inter
************
Explico
Tengo una tabla creada de esta manera
CREATE TABLE "Ingreso" (
"IdIngreso" serial NOT NULL Primary key,
"IdEmpleado" integer NOT NULL,
"Monto" numeric NOT NULL,
"FechaIngreso" date NOT NULL,
"FechaOperacion" timestamp without time zone NOT NULL,
"Nota" text,
"IdCategoria" integer NOT NULL,
"IdLinea" integer NOT NULL,
"Estado" boolean NOT NULL,
"IdPersonalEmite" integer NOT NULL,
"IdBanco" integer
) WITH (OIDS);
Tengo un Trigger en esta tabla
CREATE TRIGGER "SalvaIngreso" BEFORE DELETE OR UPDATE ON "Ingreso" FOR EACH ROW EXECUTE PROCEDURE "SalvaIngreso"()
La function:
CREATE FUNCTION "SalvaIngreso"() RETURNS trigger AS $$DECLARE
BEGIN
INSERT INTO "HistorialIngreso" ("IdIngreso","IdEmpleado","Monto","FechaIngreso","FechaOperacion","Nota","IdCategoria","IdLinea","Estado","IdPersonalEmite","IdBanco")
Values(OLD."IdIngreso",OLD."IdEmpleado",OLD."Monto",OLD."FechaIngreso",now(),OLD."Nota",OLD."IdCategoria",OLD."IdLinea",TG_OP,OLD."IdPersonalEmite",OLD."IdBanco");
RETURN NULL;
END;$$
LANGUAGE plpgsql;
***************************
El problema que tengo esque quiero eliminar una fila o registro de la base de datos “Ingreso” y me sale esta frase:
No existe un identificador único para este registro.
Y no se elimina
Pero al eliminar el Trigger si me permite eliminar la fila de la Tabla "Ingreso".
pero quiero que al eliminar la fila se guarde la información automáticamente el la tabla "HistorialIngreso".
No sé qué hacer
Gracias
Trabajo desde el PhpPgAdmin desde un host, no tengo instalado postgresql en mi pc el postgresl, lo trabajo del la pagina de inter
************
Explico
Tengo una tabla creada de esta manera
CREATE TABLE "Ingreso" (
"IdIngreso" serial NOT NULL Primary key,
"IdEmpleado" integer NOT NULL,
"Monto" numeric NOT NULL,
"FechaIngreso" date NOT NULL,
"FechaOperacion" timestamp without time zone NOT NULL,
"Nota" text,
"IdCategoria" integer NOT NULL,
"IdLinea" integer NOT NULL,
"Estado" boolean NOT NULL,
"IdPersonalEmite" integer NOT NULL,
"IdBanco" integer
) WITH (OIDS);
Tengo un Trigger en esta tabla
CREATE TRIGGER "SalvaIngreso" BEFORE DELETE OR UPDATE ON "Ingreso" FOR EACH ROW EXECUTE PROCEDURE "SalvaIngreso"()
La function:
CREATE FUNCTION "SalvaIngreso"() RETURNS trigger AS $$DECLARE
BEGIN
INSERT INTO "HistorialIngreso" ("IdIngreso","IdEmpleado","Monto","FechaIngreso","FechaOperacion","Nota","IdCategoria","IdLinea","Estado","IdPersonalEmite","IdBanco")
Values(OLD."IdIngreso",OLD."IdEmpleado",OLD."Monto",OLD."FechaIngreso",now(),OLD."Nota",OLD."IdCategoria",OLD."IdLinea",TG_OP,OLD."IdPersonalEmite",OLD."IdBanco");
RETURN NULL;
END;$$
LANGUAGE plpgsql;
***************************
El problema que tengo esque quiero eliminar una fila o registro de la base de datos “Ingreso” y me sale esta frase:
No existe un identificador único para este registro.
Y no se elimina
Pero al eliminar el Trigger si me permite eliminar la fila de la Tabla "Ingreso".
pero quiero que al eliminar la fila se guarde la información automáticamente el la tabla "HistorialIngreso".
No sé qué hacer
Gracias
Valora esta pregunta


0