[pgsql-jp: 35792] Re: Slony-I 、has no primary key...

K.Tomita tomita @ gnavi.co.jp
2005年 8月 3日 (水) 11:35:39 JST


櫻井様
はせがわ様

冨田です。

>>  - ERROR:  Slony-I: table public.category has no primary key

単にテーブルにprimary keyが無いだけだと思います。

で、Slonyには各テーブルにプライマリキーが必須です。

>In the Slony-I replication system, every replicated table is required
>to have at least one UNIQUE constraint who's columns are declared NOT
>NULL. Any primary key satisfies this requirement.

……と思っていたんですがドキュメントを見ると
代替手段があるようですね。
参照
http://gborg.postgresql.org/project/slony1/genpage.php?slonik_commands#stmt_table_add_key

ただし、
>As a last resort, this command can be used to add such an attribute to
>a table that does not have a primary key. Since this modification can
>have unwanted side effects, it is strongly recommended to add a unique
>and not null attribute by other means.

となっているのでプライマリキーを付加した方が無難な気もします。
(プライマリキーとは何かを考えた場合RDBMSとしてプライマリキーを
 付加すると言うのは外れた考えではないと思いますし。)


Masaichi Hasegawa wrote:
> はせがわといいます。
> 
> 2005/08/03 10:48:57, sakurai @ mxs.nes.nec.co.jp was wrote 
> 
>>>確認ですが
>>>
>>>>コンパイルが通りません。
>>>
>>>とは「slonikコマンドの実行が出来ない。」ですよね。
>>
>> ⇒ いえ、シェルの実行時にエラーがでるということです。
> 
> サンプルではslonikをシェルのヒアドキュメントで記述していますので
> サンプルのシェルを実行するとslonikを実行しています。
> で、エラー(PGRES_FATAL_ERROR...以降)はslonikは出しています。
> slonik <<_EOFを0行目と考えて43行目には何が記述されているでしょうか?
> table add key?、set add table?
> 
> (snip) 
> 
>>table add key (node id = 1, fully qualified name = 'public.category');
>>
>>実行結果
>><stdin>:43: PGRES_FATAL_ERROR select "_test1".determineIdxnameUnique('public.category', NULL);
>>  - ERROR:  Slony-I: table public.category has no primary key
> 
> 
> set add tableでkey=serialを指定していないとか。
> うろ覚えなんですが、、、
> 
> --
> NTT SP研 OSP 長谷川雅一 <hasegawa.masaichi @ lab.ntt.co.jp>
> 




pgsql-jp メーリングリストの案内