Re: Eliminar registros

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Eliminar registros
Date: 2005-10-25 20:26:08
Message-ID: 20051025202608.GA7836@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Conrado Blasetti escribió:

> Lo que encesito es borrar los registros de la tabla A que no existan en B,
> por lo tanto, lo unico que hice fue reemplazar el select por el delete, pero
> no funciona, desde el pgadmin III no puedo visualizar el error.
> La sintaxis es la correcta??

Aca funciona perfectamente:

alvherre=# create table a (a int primary key);
NOTICE: CREATE TABLE / PRIMARY KEY creará el índice implícito «a_pkey» para la tabla «a»
CREATE TABLE
alvherre=# create table b (a int primary key references a);
NOTICE: CREATE TABLE / PRIMARY KEY creará el índice implícito «b_pkey» para la tabla «b»
CREATE TABLE
alvherre=# insert into a values (1);
INSERT 0 1
alvherre=# insert into a values (2);
INSERT 0 1
alvherre=# insert into a values (3);
INSERT 0 1
alvherre=# insert into b values (1);
INSERT 0 1
alvherre=# insert into a values (4);
INSERT 0 1
alvherre=# insert into b values (2);
INSERT 0 1
alvherre=# select * from a where not exists (select 1 from b where a = a.a);
a
---
3
4
(2 filas)

alvherre=# delete from a where not exists (select 1 from b where a = a.a);
DELETE 2
alvherre=# select * from a;
a
---
1
2
(2 filas)

alvherre=# select * from b;
a
---
1
2
(2 filas)

--
Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J
"El sudor es la mejor cura para un pensamiento enfermo" (Bardia)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Aguada 2005-10-25 20:29:54 Re: Alguien puede decirme por que esta estructura funciona mal?
Previous Message Johan Petit 2005-10-25 20:00:44 Re: clave del usuario posgres???linux