[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 メーリングリストの案内