From: | Thomas Good <tomg(at)admin(dot)nrnet(dot)org> |
---|---|
To: | Alessio Bragadini <alessio(at)albourne(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: MySql 'REPLACE' |
Date: | 2001-04-25 13:06:21 |
Message-ID: | Pine.LNX.4.05.10104250857021.26314-100000@admin.nrnet.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Wed, 25 Apr 2001, Alessio Bragadini wrote:
> I am working in porting the Slash software from MySql to PostgreSQL. I
> stepped in MySql's REPLACE command (a SQL command) that to my knowledge
> is not supported by PostgreSQL and it's not standard SQL. According to
> MySql's manual:
>
> "REPLACE works exactly like INSERT, except that if an old record in the
> table has the same value as a new record on a unique index, the old
> record is
> deleted before the new record is inserted. See section 7.21 INSERT
> syntax."
>
> REPLACE INTO table (column, column...) VALUES (value, value...)
>
> Has anyone had any experience about how to simulate it under PostgreSQL?
> I am using Perl and I can move most of the thing into application
> anyway.
Hi, I did this in moving a query from a deprecated* (INSERT INTO ... SELECT)
form to two separate queries...using perl. My statement handle for the
select cursor grabbed all of the values and then passed them to an insert.
In your case I'd guess you could grab the pkey in a $sth->fetchrow_array()
(or hashref) and do a delete & insert in a $dbh->do() series?
Good luck,
Tom
* deprecated according to SQL In A Nutshell and other SQL3 ref guides.
--------------------------------------------------------------------
SVCMC - Center for Behavioral Health
--------------------------------------------------------------------
Thomas Good tomg@ { admin | q8 } .nrnet.org
Database Administrator Phone: 718-354-5528
Staten Island Region Mobile: 917-282-7359
--------------------------------------------------------------------
Powered by: PostgreSQL s l a c k w a r e FreeBSD:
RDBMS |---------- linux The Power To Serve
--------------------------------------------------------------------
/* We prefer linguistic vigor over mathematical rigor. */
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Swan | 2001-04-25 13:43:02 | Re: MySql 'REPLACE' |
Previous Message | Alessio Bragadini | 2001-04-25 12:38:43 | MySql 'REPLACE' |