[Pgsql-ayuda] como crear delete recursivo?

Víctor R. Ruiz rvr@infoastro.com
Wed, 29 Jan 2003 12:23:38 +0000


  Hola:

El Wednesday 29 January 2003 09:39, Antonio Castro tecleó:
> Para mi esto es más un tema de programación que de Postgres pero la
> solución más facil que a mi se me ocurre si se asume una estructura en

  Hay una solución más fácil y es crear una referencia de integridad con 
el identificador de la tabla, en la propia tabla:

  CREATE TABLE prueba (
     id SERIAL PRIMARY KEY,
     padre INT REFERENCES prueba (id) ON DELETE CASCADE
  );

prueba=> INSERT INTO prueba (padre) VALUES (NULL);
INSERT 106753 1
prueba=> select * from prueba ;
 id | padre
----+-------
  1 |
(1 row)

prueba=> INSERT INTO prueba (padre) VALUES (1);
INSERT 106754 1

prueba=> DELETE FROM prueba WHERE id = 1;
DELETE 1

prueba=> SELECT * FROM prueba;
 id | padre
----+-------
(0 rows)

  Saludetes,

-- 
Víctor R. Ruiz           | - Todos estos momentos se perderán, como
http://infoastro.com/rvr |   lágrimas en la lluvia.