Re: Duplicating a table row while honouring key constraints

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Gordon <gordon(dot)mcvey(at)ntlworld(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Duplicating a table row while honouring key constraints
Date: 2007-11-12 21:38:36
Message-ID: 20071112213836.GE22963@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Gordon wrote:

> At first I thought INSERT INTO table_name SELECT * from table_name
> where primary_key = unique_value would do it, but that would obviously
> violate the primary key uniqueness constraint. I'm wondering if
> there's a way to do this where I only grab the data to be copied and
> let the database work out the new primary key itself.

Well, try
INSERT INTO table_name SELECT col1, col2, ... FROM table_name WHERE
primary_key = unique_value

where the colX list excludes the primary key columns. Perhaps add
DEFAULT specification for those so that they are generated from a
sequence or whatever default generator you have.

--
Alvaro Herrera Valdivia, Chile ICBM: S 39º 49' 18.1", W 73º 13' 56.4"
"A wizard is never late, Frodo Baggins, nor is he early.
He arrives precisely when he means to." (Gandalf, en LoTR FoTR)

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Vivek Khera 2007-11-12 22:02:52 Re: Linux v.s. Mac OS-X Performance
Previous Message Robert Treat 2007-11-12 21:18:24 Re: Regression in 8.3?