Re: Change primary key in Postgres 7.3?

Поиск
Список
Период
Сортировка
От Mike Mascari
Тема Re: Change primary key in Postgres 7.3?
Дата
Msg-id 416C9606.1070006@mascari.com
обсуждение исходный текст
Ответ на Re: Change primary key in Postgres 7.3?  (Michael Fuhr <mike@fuhr.org>)
Список pgsql-general
Michael Fuhr wrote:
> On Tue, Oct 12, 2004 at 06:10:12PM -0700, Michael Hannon wrote:
>
>>We expect that we WILL eventually rebuild the database, but right now
>>we're looking for a quick fix.  Our current programmer tells me that he
>>can't find a way to simply change the primary key "in place" in Postgres.
>
> Does ALTER TABLE not work?
>
> http://www.postgresql.org/docs/7.3/static/sql-altertable.html
>
> Whatever you decide to do, hopefully you have a development system
> on which to test your changes.

I'm not sure what the original poster is asking precisely, but if they
have declared all foreign keys referencing the primary table's primary
key with ON UPDATE CASCADE, then all they need to do is update the
primary table's primary key.

[test@lexus] create table foo (key integer not null primary key);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"foo_pkey" for table "foo"
CREATE TABLE
[test@lexus] create table bar(other integer not null primary key,
foo_key integer not null references foo(key) on delete cascade on update
cascade);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"bar_pkey" for table "bar"
CREATE TABLE
[test@lexus] insert into foo values (1);
INSERT 2433708 1
[test@lexus] insert into bar values (100, 1);
INSERT 2433709 1
[test@lexus] update foo set key = 2;
UPDATE 1
[test@lexus] select * from bar;
  other | foo_key
-------+---------
    100 |       2
(1 row)


Is that what the original poster is trying to achieve?

Mike Mascari

В списке pgsql-general по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: Change primary key in Postgres 7.3?
Следующее
От: Ann
Дата:
Сообщение: Re: memory leak of PQmakeEmptyPGresult??