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)
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 |