Skip site navigation (1) Skip section navigation (2)

Error borrando datos de tabla en 8.3

From: Raúl Andrés Duque <ra_duque(at)yahoo(dot)com(dot)mx>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Error borrando datos de tabla en 8.3
Date: 2008-02-29 10:13:56
Message-ID: 001a01c87abb$cb89d520$0201a8c0@desktop (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Cordial Saludo.

Tengo que inicializar una tabla por lo que ejecute los siguientes comandos:

==================================================================
-- Limpiar Movimiento
delete from def_movimiento;
select setval('def_movimiento_id_movimiento_seq', 1);
==================================================================

La tabla tiene cerca de 500k registros ... después de 6 horas decidí cancelar el comando (no era lógico que demorara tanto!!!), al cancelar obtuve el siguiente mensaje:

==================================================================
Query result with 1 rows discarded.
Query result with 1 rows discarded.
Query result with 1 rows discarded.
Query result with 1 rows discarded.
Query result with 1 rows discarded.

ERROR:  canceling statement due to user request
CONTEXT:  SQL statement "SELECT 1 FROM ONLY "postgresql"."def_parte" x WHERE "id_parte" OPERATOR(pg_catalog.=) $1 FOR SHARE OF x"
==================================================================

Existe un FK entre def_movimiento y def_parte, pero por el sentido de la relación, no debería afectarme .... además las operaciones en cascada están desactivadas.

Qué puede estar pasando?

NOTA: En 8.2 no tuve problemas en este sentido. Voy a intentar con TRUNCATE TABLE, que es más adecuado para lo que quiero hacer a ver que pasa.

Esta es la estructura de la tabla def_movimiento:

==================================================================
CREATE TABLE postgresql.def_movimiento
(
  id_movimiento integer NOT NULL DEFAULT nextval('def_movimiento_id_movimiento_seq'::regclass),
  fecha_movimiento timestamp without time zone NOT NULL DEFAULT ('now'::text)::date,
  id_transac integer NOT NULL DEFAULT 1,
  id_dtransac smallint NOT NULL DEFAULT 1,
  id_traninve integer NOT NULL DEFAULT 1,
  id_parte integer NOT NULL DEFAULT 1,
  id_almacen integer NOT NULL DEFAULT 1,
  id_localizacion integer NOT NULL DEFAULT 1,
  id_tipodocumento integer NOT NULL DEFAULT 99,
  documento_movimiento integer NOT NULL DEFAULT 0,
  itemdocu_movimiento smallint NOT NULL DEFAULT 0,
  id_tercero integer NOT NULL DEFAULT 99999999,
  iduser integer NOT NULL DEFAULT 1,
  id_unidad integer NOT NULL DEFAULT 1,
  cantidad_movimiento real NOT NULL DEFAULT 0,
  vpromedio_movimiento real NOT NULL DEFAULT 0,
  vultimo_movimiento real NOT NULL DEFAULT 0,
  qreal_movimiento real NOT NULL DEFAULT 0,
  qcomprometida_movimiento real NOT NULL DEFAULT 0,
  qtransito_movimiento real NOT NULL DEFAULT 0.0,
  qreal2_movimiento real NOT NULL DEFAULT 0.0,
  CONSTRAINT key_movimiento PRIMARY KEY (id_movimiento),
  CONSTRAINT def_movimiento_id_almacen_fkey FOREIGN KEY (id_almacen, id_localizacion)
      REFERENCES postgresql.def_localizacion (id_almacen, id_localizacion) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT def_movimiento_id_parte_fkey FOREIGN KEY (id_parte)
      REFERENCES postgresql.def_parte (id_parte) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT def_movimiento_id_tercero_fkey FOREIGN KEY (id_tercero)
      REFERENCES postgresql.def_tercero (id_tercero) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT def_movimiento_id_tipodocumento_fkey FOREIGN KEY (id_tipodocumento)
      REFERENCES postgresql.def_tipodocumento (id_tipodocumento) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT def_movimiento_id_traninve_fkey FOREIGN KEY (id_traninve)
      REFERENCES postgresql.def_traninve (id_traninve) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT def_movimiento_id_transac_fkey FOREIGN KEY (id_transac, id_dtransac)
      REFERENCES postgresql.def_dtransac (id_transac, id_dtransac) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT def_movimiento_id_unidad_fkey FOREIGN KEY (id_unidad)
      REFERENCES postgresql.def_unidad (id_unidad) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT def_movimiento_iduser_fkey FOREIGN KEY (iduser)
      REFERENCES postgresql.sys_users (iduser) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (OIDS=FALSE);
ALTER TABLE postgresql.def_movimiento OWNER TO postgres;

CREATE INDEX idx_movimiento_fecha
  ON postgresql.def_movimiento
  USING btree
  (fecha_movimiento);
==================================================================

El archivo de log no me reporta ningun problema de memoria, sin envargo me recomienda aumentar el tiempo de checkpoints;

==================================================================
2008-02-29 04:04:07 COT LOG:  checkpoints are occurring too frequently (15 seconds apart)
2008-02-29 04:04:07 COT HINT:  Consider increasing the configuration parameter "checkpoint_segments".
2008-02-29 04:04:26 COT LOG:  checkpoints are occurring too frequently (19 seconds apart)
2008-02-29 04:04:26 COT HINT:  Consider increasing the configuration parameter "checkpoint_segments".
2008-02-29 04:04:39 COT LOG:  checkpoints are occurring too frequently (13 seconds apart)
2008-02-29 04:04:39 COT HINT:  Consider increasing the configuration parameter "checkpoint_segments".
2008-02-29 04:44:54 COT LOG:  loaded library "$libdir/plugins/plugin_debugger.dll"
2008-02-29 04:45:54 COT LOG:  loaded library "$libdir/plugins/plugin_debugger.dll"
2008-02-29 04:45:54 COT ERROR:  canceling statement due to user request
2008-02-29 04:45:54 COT CONTEXT:  SQL statement "SELECT 1 FROM ONLY "postgresql"."def_parte" x WHERE "id_parte" OPERATOR(pg_catalog.=) $1 FOR SHARE OF x"
2008-02-29 04:45:54 COT STATEMENT:  -- Limpiar Movimiento

 delete from def_movimiento;

 select setval('def_movimiento_id_movimiento_seq', 1);

2008-02-29 04:47:03 COT LOG:  loaded library "$libdir/plugins/plugin_debugger.dll"
2008-02-29 04:47:36 COT LOG:  loaded library "$libdir/plugins/plugin_debugger.dll"
2008-02-29 05:06:17 COT LOG:  loaded library "$libdir/plugins/plugin_debugger.dll"
==================================================================


Atentamente,

RAUL DUQUE
Bogotá, Colombia

Responses

pgsql-es-ayuda by date

Next:From: Raúl Andrés DuqueDate: 2008-02-29 10:47:03
Subject: Re: Error borrando datos de tabla en 8.3
Previous:From: José Manuel RuizDate: 2008-02-29 07:03:28
Subject: Re: Postgresql + PHP

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group