Thread: RE: [SQL] Mail about duplicate rows

RE: [SQL] Mail about duplicate rows

From
"Jackson, DeJuan"
Date:
Then you would use:
INSERT INTO radius
SELECT * FROM raduistemp r1
WHERE NOT EXISTS(SELECT 1 FROM radius r2   WHERE r1.uname=r2.uname AND r1.logdate=r2.logdate AND
r1.logtime=r2.logtime);-DEJ

> -----Original Message-----
> From:    Vikrant Rathore [SMTP:vikrant@chemquick.com]
> Sent:    Monday, June 07, 1999 12:37 AM
> To:    Fomichev Michael
> Cc:    pgsql-sql@postgreSQL.org
> Subject:    Re: [SQL] Mail about duplicate rows
> 
> Thanks for your help. But as you know the UNAME is not unique in radius
> logs. The
> primary key for this table is (Uname,logdate,logtime).
> 
> So this three fields together forms a primary key of the table.
> 
> Thanks & regards,
> Vicky
> 
> 
> Fomichev Michael wrote:
> 
> > On Mon, 7 Jun 1999, Vikrant Rathore wrote:
> >
> > > I am trying to append a table radius from another table radiustemp,
> both
> > > having the same structure, but want to append only those tuples from
> > > radiustemp which are not there in radius. The size of the table can be
> > > up to 165 MB.
> > > So anyone can suggest me a better way of doing this.
> > >
> > > The structure if table is like this .
> > >
> > > Table    = radius
> > >
> +----------------------------------+----------------------------------+---
> ----+
> > >
> > > |              Field               |              Type
> |
> > > Length|
> > >
> +----------------------------------+----------------------------------+---
> ----+
> > >
> > > | uname                            | char()
> > > |   256 |
> > > | logdate                          | date
> > > |     4 |
> > > | logtime                          | time
> > > |     8 |
> > > | duration                         | int4
> > > |     4 |
> > > | status                           | char()
> > > |    20 |
> > > | nasadd                           | char()
> > > |    20 |
> > > | port                             | int4
> > > |     4 |
> > > | bytesin                          | int4
> > > |     4 |
> > > | bytesout                         | int4
> > > |     4 |
> > > | packin                           | int4
> > > |     4 |
> > > | packout                          | int4
> > > |     4 |
> > > | misc                             | int4
> > > |     4 |
> > >
> +----------------------------------+----------------------------------+---
> ----+
> > >
> > > Thank's in advance for your help.
> > >
> > > Thanks & regards,
> > > Vicky
> > >
> > insert into RADIUS select * from RADIUSTEMP where UNAME not in (select
> > UNAME from RADIUS)
> >
> > UNAME must be unique. If it is not, than you need to use another field
> > (for example "code") which will be unique.
> >
> > P.S. Nice book about SQL: "Understanding SQL" by Martin Gruber. ISBN
> > 5-85582-010-6
> >
> > @------------------+-----------------------------------------------@
> > | Fomichev Mikhail | The Government of Kamchatka region.           |
> > | Vladimirovich    | The Labour and Social Development Department. |
> > |<fomichev@null.ru>|                                               |
> > @------------------+-----------------------------------------------@
> 


Re: [SQL] Mail about duplicate rows

From
Vikrant Rathore
Date:
Dear Jackson and Michael,
   Thanks very much for your help the query worked. Also can you help in one
more way. It took a lot of time to update the radius table around 5 minutes, the
size of the table was around 360 KB's only, so could you suggest a way of
improving the performance since if i am having a table of around 120 - 165 MB it
does not take much time to update the radius table.

Thanks for your help once again.

Regards,
Vicky


"Jackson, DeJuan" wrote:

> Then you would use:
> INSERT INTO radius
> SELECT * FROM raduistemp r1
> WHERE NOT EXISTS(SELECT 1 FROM radius r2
>     WHERE r1.uname=r2.uname AND r1.logdate=r2.logdate AND
> r1.logtime=r2.logtime);
>         -DEJ
>
> > -----Original Message-----
> > From: Vikrant Rathore [SMTP:vikrant@chemquick.com]
> > Sent: Monday, June 07, 1999 12:37 AM
> > To:   Fomichev Michael
> > Cc:   pgsql-sql@postgreSQL.org
> > Subject:      Re: [SQL] Mail about duplicate rows
> >
> > Thanks for your help. But as you know the UNAME is not unique in radius
> > logs. The
> > primary key for this table is (Uname,logdate,logtime).
> >
> > So this three fields together forms a primary key of the table.
> >
> > Thanks & regards,
> > Vicky
> >
> >
> > Fomichev Michael wrote:
> >
> > > On Mon, 7 Jun 1999, Vikrant Rathore wrote:
> > >
> > > > I am trying to append a table radius from another table radiustemp,
> > both
> > > > having the same structure, but want to append only those tuples from
> > > > radiustemp which are not there in radius. The size of the table can be
> > > > up to 165 MB.
> > > > So anyone can suggest me a better way of doing this.
> > > >
> > > > The structure if table is like this .
> > > >
> > > > Table    = radius
> > > >
> > +----------------------------------+----------------------------------+---
> > ----+
> > > >
> > > > |              Field               |              Type
> > |
> > > > Length|
> > > >
> > +----------------------------------+----------------------------------+---
> > ----+
> > > >
> > > > | uname                            | char()
> > > > |   256 |
> > > > | logdate                          | date
> > > > |     4 |
> > > > | logtime                          | time
> > > > |     8 |
> > > > | duration                         | int4
> > > > |     4 |
> > > > | status                           | char()
> > > > |    20 |
> > > > | nasadd                           | char()
> > > > |    20 |
> > > > | port                             | int4
> > > > |     4 |
> > > > | bytesin                          | int4
> > > > |     4 |
> > > > | bytesout                         | int4
> > > > |     4 |
> > > > | packin                           | int4
> > > > |     4 |
> > > > | packout                          | int4
> > > > |     4 |
> > > > | misc                             | int4
> > > > |     4 |
> > > >
> > +----------------------------------+----------------------------------+---
> > ----+
> > > >
> > > > Thank's in advance for your help.
> > > >
> > > > Thanks & regards,
> > > > Vicky
> > > >
> > > insert into RADIUS select * from RADIUSTEMP where UNAME not in (select
> > > UNAME from RADIUS)
> > >
> > > UNAME must be unique. If it is not, than you need to use another field
> > > (for example "code") which will be unique.
> > >
> > > P.S. Nice book about SQL: "Understanding SQL" by Martin Gruber. ISBN
> > > 5-85582-010-6
> > >
> > > @------------------+-----------------------------------------------@
> > > | Fomichev Mikhail | The Government of Kamchatka region.           |
> > > | Vladimirovich    | The Labour and Social Development Department. |
> > > |<fomichev@null.ru>|                                               |
> > > @------------------+-----------------------------------------------@
> >