Lists: | pgsql-es-ayuda |
---|
From: | Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | RE: Eliminar registros |
Date: | 2005-10-25 20:38:22 |
Message-ID: | 65746BCC3D99E44998976FD845AD6E6E0DEE4AC5@MAIL |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Es correcto, funciona perfectamente, salvo que no funcionaba el alias en la
primer tabla.
Gracias
Saludos,
-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)alvh(dot)no-ip(dot)org]
Enviado el: Martes, 25 de Octubre de 2005 05:26 p.m.
Para: Conrado Blasetti
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Eliminar registros
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)