| 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: | Whole Thread | Raw Message | 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)
| 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 |