pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Glenn Maynard <glennfmaynard@gmail.com>
To: Richard Broersma <richard.broersma@gmail.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: changing multiple pk's in one update
Date: Mon, 13 Apr 2009 17:32:53 -0400
Message-ID: <d18085b50904131432o1d3af00ci250d1077024648f5@mail.gmail.com> (raw)
In-Reply-To: <396486430904131418g3898dc5h2472f9efab331489@mail.gmail.com>
References: <49DC1034.1060705@frii.com>
	<dcc563d10904101120y49f00977nc74132e982518444@mail.gmail.com>
	<49E37441.6030301@frii.com>
	<d18085b50904131409g10d43d6cs35dd14ede13bc02@mail.gmail.com>
	<396486430904131418g3898dc5h2472f9efab331489@mail.gmail.com>

On Mon, Apr 13, 2009 at 5:18 PM, Richard Broersma
<richard.broersma@gmail.com> wrote:
>> Your PK is a composite of (entry, order)?  Won't your foreign keys
>> elsewhere all break when you shift the order around?
>
> If there really are foreign keys, then an update will not be allowed
> to shift a primary key unless the foreign key is set with ON UPDATE
> CASCADE then the shifts will be cascaded to all references
> automatically.

Right.  I'm still dusting off my SQL after a long period of corrosion.  :)

The same applies, though, if you have external references to the PK;
for example, if you have a web interface where "/sense/10/3" refers to
entry 10, sense 3.  If your senses are reordered by someone else, and
you operate on /10/3, you may suddenly find yourself viewing or
modifying (or deleting!) a different sense.  This could even happen
within the same transaction, if you're not very careful with
locking...

-- 
Glenn Maynard



view thread (15+ messages)  latest in thread

Message-ID: <d18085b50904131432o1d3af00ci250d1077024648f5@mail.gmail.com>
Permalink:  ../d18085b50904131432o1d3af00ci250d1077024648f5@mail.gmail.com/
Also on:    postgresql.org/message-id/d18085b50904131432o1d3af00ci250d1077024648f5@mail.gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: glennfmaynard@gmail.com, richard.broersma@gmail.com
  Subject: Re: changing multiple pk's in one update
  In-Reply-To: <d18085b50904131432o1d3af00ci250d1077024648f5@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox