これまだ試してないんだけど、いわゆる世代別にわけたテーブルを使ってるとして
item_200602
item_200601
item_200512
item_200511
...
これら全てに通しで使えるSERIAL PRIMARY KEYを貼りたいのね。この場合、テーブルを作る時にこんな感じでいいのかな
CREATE SEQUENCE item_global_id_seq;
CREATE TABLE item_200602 (
id INTEGER NOT NULL DEFAULT nextval('item_global_id_seq') PRIMARY KEY,
...
);
CREATE TABLE item_200601 (
id INTEGER NOT NULL DEFAULT nextval('item_global_id_seq') PRIMARY KEY,
...
);
で、これでINSERTするとitem_200602とitem_200601とでかぶるIDはなくなる(はず)でいいのかな。っていうか、違うな。なんかこの場合は継承を使わないとユニークキーにならないような気がする。こっちか?
CREATE TABLE item (
id SERIAL PRIMARY KEY
...
);
CREATE TABLE item_200612 () INHERITS item;
これだと確かPKはitemの中で保存されるよーな。