スター機能の是非
はてなスターがリリースされてました。
メールで知ったクチです。。。。。
リリース直後の開発日記に、
- 削除機能をつけて欲しい
- 自分のブログをスター対象としたくない
- 強制的に機能利用をしたくない(選択させて欲しい)
という大きく3つのクレームが多数書き込まれていました。
私見としては、まぁいいと思います。
スターをつける = 褒める
という意味合いから、間違って付けたとしても、致命的な迷惑をかけるわけではないし(スターを評価基準にしている方がいれば別ですが。。。)。
間違ってつけたとしても、そこから新しい発見や繋がりが見出せる仕組みだと思います(開発者もそれを多少意図していると考えてます)。
そんな感じで、スター機能あってもなくてもいいけど、「とても良い機能」だと思います。
ちなみに、私は自爆はしてません。
パーティショニング(よく使うであろう構成のテンプレート化)
---- ---- 履歴データ管理用情報構造定義 ---- ---- 環境 PostgreSQL8.2 以上 ---- ---- ------------------------------------------------------------------ ---- 既存オブジェクトを抹殺 -- ------------------------------------------------------------------ DROP VIEW view_jisseki; DROP RULE jisseki_insert_y2007m01 ON jisseki; DROP RULE jisseki_insert_y2007m02 ON jisseki; DROP RULE jisseki_insert_y2007m03 ON jisseki; DROP RULE jisseki_insert_y2007m04 ON jisseki; DROP RULE jisseki_insert_y2007m05 ON jisseki; DROP RULE jisseki_insert_y2007m06 ON jisseki; DROP RULE jisseki_insert_y2007m07 ON jisseki; DROP RULE jisseki_insert_y2007m08 ON jisseki; DROP RULE jisseki_insert_y2007m09 ON jisseki; DROP RULE jisseki_insert_y2007m10 ON jisseki; DROP RULE jisseki_insert_y2007m11 ON jisseki; DROP RULE jisseki_insert_y2007m12 ON jisseki; DROP RULE jisseki_insert_y2008m01 ON jisseki; DROP RULE jisseki_insert_y2008m02 ON jisseki; DROP RULE jisseki_insert_y2008m03 ON jisseki; DROP RULE jisseki_insert_y2008m04 ON jisseki; DROP RULE jisseki_insert_y2008m05 ON jisseki; DROP RULE jisseki_insert_y2008m06 ON jisseki; DROP RULE jisseki_insert_y2008m07 ON jisseki; DROP RULE jisseki_insert_y2008m08 ON jisseki; DROP RULE jisseki_insert_y2008m09 ON jisseki; DROP RULE jisseki_insert_y2008m10 ON jisseki; DROP RULE jisseki_insert_y2008m11 ON jisseki; DROP RULE jisseki_insert_y2008m12 ON jisseki; DROP RULE jisseki_insert_y2009m01 ON jisseki; DROP RULE jisseki_insert_y2009m02 ON jisseki; DROP RULE jisseki_insert_y2009m03 ON jisseki; DROP RULE jisseki_insert_y2009m04 ON jisseki; DROP RULE jisseki_insert_y2009m05 ON jisseki; DROP RULE jisseki_insert_y2009m06 ON jisseki; DROP RULE jisseki_insert_y2009m07 ON jisseki; DROP RULE jisseki_insert_y2009m08 ON jisseki; DROP RULE jisseki_insert_y2009m09 ON jisseki; DROP RULE jisseki_insert_y2009m10 ON jisseki; DROP RULE jisseki_insert_y2009m11 ON jisseki; DROP RULE jisseki_insert_y2009m12 ON jisseki; DROP RULE jisseki_insert_y2010m01 ON jisseki; DROP RULE jisseki_insert_y2010m02 ON jisseki; DROP RULE jisseki_insert_y2010m03 ON jisseki; DROP RULE jisseki_insert_y2010m04 ON jisseki; DROP RULE jisseki_insert_y2010m05 ON jisseki; DROP RULE jisseki_insert_y2010m06 ON jisseki; DROP RULE jisseki_insert_y2010m07 ON jisseki; DROP RULE jisseki_insert_y2010m08 ON jisseki; DROP RULE jisseki_insert_y2010m09 ON jisseki; DROP RULE jisseki_insert_y2010m10 ON jisseki; DROP RULE jisseki_insert_y2010m11 ON jisseki; DROP RULE jisseki_insert_y2010m12 ON jisseki; DROP RULE jisseki_insert_y2011m01 ON jisseki; DROP RULE jisseki_insert_y2011m02 ON jisseki; DROP RULE jisseki_insert_y2011m03 ON jisseki; DROP RULE jisseki_insert_y2011m04 ON jisseki; DROP RULE jisseki_insert_y2011m05 ON jisseki; DROP RULE jisseki_insert_y2011m06 ON jisseki; DROP RULE jisseki_insert_y2011m07 ON jisseki; DROP RULE jisseki_insert_y2011m08 ON jisseki; DROP RULE jisseki_insert_y2011m09 ON jisseki; DROP RULE jisseki_insert_y2011m10 ON jisseki; DROP RULE jisseki_insert_y2011m11 ON jisseki; DROP RULE jisseki_insert_y2011m12 ON jisseki; DROP TABLE jisseki_y2007m01; DROP TABLE jisseki_y2007m02; DROP TABLE jisseki_y2007m03; DROP TABLE jisseki_y2007m04; DROP TABLE jisseki_y2007m05; DROP TABLE jisseki_y2007m06; DROP TABLE jisseki_y2007m07; DROP TABLE jisseki_y2007m08; DROP TABLE jisseki_y2007m09; DROP TABLE jisseki_y2007m10; DROP TABLE jisseki_y2007m11; DROP TABLE jisseki_y2007m12; DROP TABLE jisseki_y2008m01; DROP TABLE jisseki_y2008m02; DROP TABLE jisseki_y2008m03; DROP TABLE jisseki_y2008m04; DROP TABLE jisseki_y2008m05; DROP TABLE jisseki_y2008m06; DROP TABLE jisseki_y2008m07; DROP TABLE jisseki_y2008m08; DROP TABLE jisseki_y2008m09; DROP TABLE jisseki_y2008m10; DROP TABLE jisseki_y2008m11; DROP TABLE jisseki_y2008m12; DROP TABLE jisseki_y2009m01; DROP TABLE jisseki_y2009m02; DROP TABLE jisseki_y2009m03; DROP TABLE jisseki_y2009m04; DROP TABLE jisseki_y2009m05; DROP TABLE jisseki_y2009m06; DROP TABLE jisseki_y2009m07; DROP TABLE jisseki_y2009m08; DROP TABLE jisseki_y2009m09; DROP TABLE jisseki_y2009m10; DROP TABLE jisseki_y2009m11; DROP TABLE jisseki_y2009m12; DROP TABLE jisseki_y2010m01; DROP TABLE jisseki_y2010m02; DROP TABLE jisseki_y2010m03; DROP TABLE jisseki_y2010m04; DROP TABLE jisseki_y2010m05; DROP TABLE jisseki_y2010m06; DROP TABLE jisseki_y2010m07; DROP TABLE jisseki_y2010m08; DROP TABLE jisseki_y2010m09; DROP TABLE jisseki_y2010m10; DROP TABLE jisseki_y2010m11; DROP TABLE jisseki_y2010m12; DROP TABLE jisseki_y2011m01; DROP TABLE jisseki_y2011m02; DROP TABLE jisseki_y2011m03; DROP TABLE jisseki_y2011m04; DROP TABLE jisseki_y2011m05; DROP TABLE jisseki_y2011m06; DROP TABLE jisseki_y2011m07; DROP TABLE jisseki_y2011m08; DROP TABLE jisseki_y2011m09; DROP TABLE jisseki_y2011m10; DROP TABLE jisseki_y2011m11; DROP TABLE jisseki_y2011m12; DROP TABLE jisseki; ------------------------------------------------------------------ ---- jisseki 親テーブルを生む -- ------------------------------------------------------------------ CREATE TABLE jisseki( tid integer, -- 店舗コード jdate date, -- 日付 data1 integer, -- データ1 data2 integer, -- データ2 data3 integer, -- データ3 data4 integer, -- データ4 data5 integer -- データ5 ); ------------------------------------------------------------------ ---- jisseki 継承テーブルを生む -- ------------------------------------------------------------------ CREATE TABLE jisseki_y2007m01 (CONSTRAINT pkey_jisseki_y2007m01 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-01-01' AND jdate < DATE '2007-02-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m02 (CONSTRAINT pkey_jisseki_y2007m02 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-02-01' AND jdate < DATE '2007-03-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m03 (CONSTRAINT pkey_jisseki_y2007m03 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-03-01' AND jdate < DATE '2007-04-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m04 (CONSTRAINT pkey_jisseki_y2007m04 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-04-01' AND jdate < DATE '2007-05-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m05 (CONSTRAINT pkey_jisseki_y2007m05 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-05-01' AND jdate < DATE '2007-06-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m06 (CONSTRAINT pkey_jisseki_y2007m06 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-06-01' AND jdate < DATE '2007-07-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m07 (CONSTRAINT pkey_jisseki_y2007m07 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-07-01' AND jdate < DATE '2007-08-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m08 (CONSTRAINT pkey_jisseki_y2007m08 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-08-01' AND jdate < DATE '2007-09-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m09 (CONSTRAINT pkey_jisseki_y2007m09 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-09-01' AND jdate < DATE '2007-10-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m10 (CONSTRAINT pkey_jisseki_y2007m10 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-10-01' AND jdate < DATE '2007-11-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m11 (CONSTRAINT pkey_jisseki_y2007m11 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-11-01' AND jdate < DATE '2007-12-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2007m12 (CONSTRAINT pkey_jisseki_y2007m12 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2007-12-01' AND jdate < DATE '2008-01-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m01 (CONSTRAINT pkey_jisseki_y2008m01 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-01-01' AND jdate < DATE '2008-02-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m02 (CONSTRAINT pkey_jisseki_y2008m02 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-02-01' AND jdate < DATE '2008-03-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m03 (CONSTRAINT pkey_jisseki_y2008m03 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-03-01' AND jdate < DATE '2008-04-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m04 (CONSTRAINT pkey_jisseki_y2008m04 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-04-01' AND jdate < DATE '2008-05-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m05 (CONSTRAINT pkey_jisseki_y2008m05 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-05-01' AND jdate < DATE '2008-06-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m06 (CONSTRAINT pkey_jisseki_y2008m06 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-06-01' AND jdate < DATE '2008-07-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m07 (CONSTRAINT pkey_jisseki_y2008m07 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-07-01' AND jdate < DATE '2008-08-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m08 (CONSTRAINT pkey_jisseki_y2008m08 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-08-01' AND jdate < DATE '2008-09-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m09 (CONSTRAINT pkey_jisseki_y2008m09 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-09-01' AND jdate < DATE '2008-10-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m10 (CONSTRAINT pkey_jisseki_y2008m10 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-10-01' AND jdate < DATE '2008-11-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m11 (CONSTRAINT pkey_jisseki_y2008m11 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-11-01' AND jdate < DATE '2008-12-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2008m12 (CONSTRAINT pkey_jisseki_y2008m12 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2008-12-01' AND jdate < DATE '2009-01-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m01 (CONSTRAINT pkey_jisseki_y2009m01 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-01-01' AND jdate < DATE '2009-02-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m02 (CONSTRAINT pkey_jisseki_y2009m02 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-02-01' AND jdate < DATE '2009-03-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m03 (CONSTRAINT pkey_jisseki_y2009m03 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-03-01' AND jdate < DATE '2009-04-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m04 (CONSTRAINT pkey_jisseki_y2009m04 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-04-01' AND jdate < DATE '2009-05-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m05 (CONSTRAINT pkey_jisseki_y2009m05 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-05-01' AND jdate < DATE '2009-06-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m06 (CONSTRAINT pkey_jisseki_y2009m06 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-06-01' AND jdate < DATE '2009-07-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m07 (CONSTRAINT pkey_jisseki_y2009m07 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-07-01' AND jdate < DATE '2009-08-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m08 (CONSTRAINT pkey_jisseki_y2009m08 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-08-01' AND jdate < DATE '2009-09-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m09 (CONSTRAINT pkey_jisseki_y2009m09 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-09-01' AND jdate < DATE '2009-10-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m10 (CONSTRAINT pkey_jisseki_y2009m10 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-10-01' AND jdate < DATE '2009-11-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m11 (CONSTRAINT pkey_jisseki_y2009m11 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-11-01' AND jdate < DATE '2009-12-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2009m12 (CONSTRAINT pkey_jisseki_y2009m12 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2009-12-01' AND jdate < DATE '2010-01-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m01 (CONSTRAINT pkey_jisseki_y2010m01 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-01-01' AND jdate < DATE '2010-02-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m02 (CONSTRAINT pkey_jisseki_y2010m02 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-02-01' AND jdate < DATE '2010-03-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m03 (CONSTRAINT pkey_jisseki_y2010m03 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-03-01' AND jdate < DATE '2010-04-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m04 (CONSTRAINT pkey_jisseki_y2010m04 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-04-01' AND jdate < DATE '2010-05-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m05 (CONSTRAINT pkey_jisseki_y2010m05 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-05-01' AND jdate < DATE '2010-06-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m06 (CONSTRAINT pkey_jisseki_y2010m06 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-06-01' AND jdate < DATE '2010-07-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m07 (CONSTRAINT pkey_jisseki_y2010m07 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-07-01' AND jdate < DATE '2010-08-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m08 (CONSTRAINT pkey_jisseki_y2010m08 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-08-01' AND jdate < DATE '2010-09-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m09 (CONSTRAINT pkey_jisseki_y2010m09 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-09-01' AND jdate < DATE '2010-10-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m10 (CONSTRAINT pkey_jisseki_y2010m10 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-10-01' AND jdate < DATE '2010-11-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m11 (CONSTRAINT pkey_jisseki_y2010m11 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-11-01' AND jdate < DATE '2010-12-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2010m12 (CONSTRAINT pkey_jisseki_y2010m12 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2010-12-01' AND jdate < DATE '2011-01-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m01 (CONSTRAINT pkey_jisseki_y2011m01 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-01-01' AND jdate < DATE '2011-02-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m02 (CONSTRAINT pkey_jisseki_y2011m02 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-02-01' AND jdate < DATE '2011-03-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m03 (CONSTRAINT pkey_jisseki_y2011m03 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-03-01' AND jdate < DATE '2011-04-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m04 (CONSTRAINT pkey_jisseki_y2011m04 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-04-01' AND jdate < DATE '2011-05-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m05 (CONSTRAINT pkey_jisseki_y2011m05 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-05-01' AND jdate < DATE '2011-06-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m06 (CONSTRAINT pkey_jisseki_y2011m06 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-06-01' AND jdate < DATE '2011-07-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m07 (CONSTRAINT pkey_jisseki_y2011m07 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-07-01' AND jdate < DATE '2011-08-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m08 (CONSTRAINT pkey_jisseki_y2011m08 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-08-01' AND jdate < DATE '2011-09-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m09 (CONSTRAINT pkey_jisseki_y2011m09 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-09-01' AND jdate < DATE '2011-10-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m10 (CONSTRAINT pkey_jisseki_y2011m10 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-10-01' AND jdate < DATE '2011-11-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m11 (CONSTRAINT pkey_jisseki_y2011m11 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-11-01' AND jdate < DATE '2011-12-01')) INHERITS (jisseki); CREATE TABLE jisseki_y2011m12 (CONSTRAINT pkey_jisseki_y2011m12 PRIMARY KEY (tid, jdate), CHECK (jdate >= DATE '2011-12-01' AND jdate < DATE '2012-01-01')) INHERITS (jisseki); ------------------------------------------------------------------ --- TABLE jisseki RULE を定める -- ------------------------------------------------------------------ CREATE RULE jisseki_insert_y2007m01 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-01-01' AND jdate < DATE '2007-02-01') DO INSTEAD INSERT INTO jisseki_y2007m01 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m02 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-02-01' AND jdate < DATE '2007-03-01') DO INSTEAD INSERT INTO jisseki_y2007m02 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m03 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-03-01' AND jdate < DATE '2007-04-01') DO INSTEAD INSERT INTO jisseki_y2007m03 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m04 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-04-01' AND jdate < DATE '2007-05-01') DO INSTEAD INSERT INTO jisseki_y2007m04 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m05 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-05-01' AND jdate < DATE '2007-06-01') DO INSTEAD INSERT INTO jisseki_y2007m05 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m06 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-06-01' AND jdate < DATE '2007-07-01') DO INSTEAD INSERT INTO jisseki_y2007m06 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m07 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-07-01' AND jdate < DATE '2007-08-01') DO INSTEAD INSERT INTO jisseki_y2007m07 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m08 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-08-01' AND jdate < DATE '2007-09-01') DO INSTEAD INSERT INTO jisseki_y2007m08 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m09 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-09-01' AND jdate < DATE '2007-10-01') DO INSTEAD INSERT INTO jisseki_y2007m09 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m10 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-10-01' AND jdate < DATE '2007-11-01') DO INSTEAD INSERT INTO jisseki_y2007m10 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m11 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-11-01' AND jdate < DATE '2007-12-01') DO INSTEAD INSERT INTO jisseki_y2007m11 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2007m12 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2007-12-01' AND jdate < DATE '2008-01-01') DO INSTEAD INSERT INTO jisseki_y2007m12 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m01 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-01-01' AND jdate < DATE '2008-02-01') DO INSTEAD INSERT INTO jisseki_y2008m01 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m02 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-02-01' AND jdate < DATE '2008-03-01') DO INSTEAD INSERT INTO jisseki_y2008m02 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m03 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-03-01' AND jdate < DATE '2008-04-01') DO INSTEAD INSERT INTO jisseki_y2008m03 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m04 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-04-01' AND jdate < DATE '2008-05-01') DO INSTEAD INSERT INTO jisseki_y2008m04 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m05 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-05-01' AND jdate < DATE '2008-06-01') DO INSTEAD INSERT INTO jisseki_y2008m05 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m06 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-06-01' AND jdate < DATE '2008-07-01') DO INSTEAD INSERT INTO jisseki_y2008m06 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m07 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-07-01' AND jdate < DATE '2008-08-01') DO INSTEAD INSERT INTO jisseki_y2008m07 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m08 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-08-01' AND jdate < DATE '2008-09-01') DO INSTEAD INSERT INTO jisseki_y2008m08 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m09 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-09-01' AND jdate < DATE '2008-10-01') DO INSTEAD INSERT INTO jisseki_y2008m09 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m10 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-10-01' AND jdate < DATE '2008-11-01') DO INSTEAD INSERT INTO jisseki_y2008m10 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m11 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-11-01' AND jdate < DATE '2008-12-01') DO INSTEAD INSERT INTO jisseki_y2008m11 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2008m12 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2008-12-01' AND jdate < DATE '2009-01-01') DO INSTEAD INSERT INTO jisseki_y2008m12 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m01 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-01-01' AND jdate < DATE '2009-02-01') DO INSTEAD INSERT INTO jisseki_y2009m01 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m02 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-02-01' AND jdate < DATE '2009-03-01') DO INSTEAD INSERT INTO jisseki_y2009m02 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m03 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-03-01' AND jdate < DATE '2009-04-01') DO INSTEAD INSERT INTO jisseki_y2009m03 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m04 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-04-01' AND jdate < DATE '2009-05-01') DO INSTEAD INSERT INTO jisseki_y2009m04 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m05 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-05-01' AND jdate < DATE '2009-06-01') DO INSTEAD INSERT INTO jisseki_y2009m05 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m06 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-06-01' AND jdate < DATE '2009-07-01') DO INSTEAD INSERT INTO jisseki_y2009m06 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m07 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-07-01' AND jdate < DATE '2009-08-01') DO INSTEAD INSERT INTO jisseki_y2009m07 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m08 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-08-01' AND jdate < DATE '2009-09-01') DO INSTEAD INSERT INTO jisseki_y2009m08 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m09 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-09-01' AND jdate < DATE '2009-10-01') DO INSTEAD INSERT INTO jisseki_y2009m09 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m10 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-10-01' AND jdate < DATE '2009-11-01') DO INSTEAD INSERT INTO jisseki_y2009m10 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m11 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-11-01' AND jdate < DATE '2009-12-01') DO INSTEAD INSERT INTO jisseki_y2009m11 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2009m12 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2009-12-01' AND jdate < DATE '2010-01-01') DO INSTEAD INSERT INTO jisseki_y2009m12 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m01 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-01-01' AND jdate < DATE '2010-02-01') DO INSTEAD INSERT INTO jisseki_y2010m01 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m02 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-02-01' AND jdate < DATE '2010-03-01') DO INSTEAD INSERT INTO jisseki_y2010m02 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m03 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-03-01' AND jdate < DATE '2010-04-01') DO INSTEAD INSERT INTO jisseki_y2010m03 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m04 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-04-01' AND jdate < DATE '2010-05-01') DO INSTEAD INSERT INTO jisseki_y2010m04 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m05 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-05-01' AND jdate < DATE '2010-06-01') DO INSTEAD INSERT INTO jisseki_y2010m05 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m06 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-06-01' AND jdate < DATE '2010-07-01') DO INSTEAD INSERT INTO jisseki_y2010m06 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m07 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-07-01' AND jdate < DATE '2010-08-01') DO INSTEAD INSERT INTO jisseki_y2010m07 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m08 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-08-01' AND jdate < DATE '2010-09-01') DO INSTEAD INSERT INTO jisseki_y2010m08 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m09 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-09-01' AND jdate < DATE '2010-10-01') DO INSTEAD INSERT INTO jisseki_y2010m09 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m10 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-10-01' AND jdate < DATE '2010-11-01') DO INSTEAD INSERT INTO jisseki_y2010m10 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m11 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-11-01' AND jdate < DATE '2010-12-01') DO INSTEAD INSERT INTO jisseki_y2010m11 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2010m12 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2010-12-01' AND jdate < DATE '2011-01-01') DO INSTEAD INSERT INTO jisseki_y2010m12 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m01 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-01-01' AND jdate < DATE '2011-02-01') DO INSTEAD INSERT INTO jisseki_y2011m01 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m02 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-02-01' AND jdate < DATE '2011-03-01') DO INSTEAD INSERT INTO jisseki_y2011m02 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m03 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-03-01' AND jdate < DATE '2011-04-01') DO INSTEAD INSERT INTO jisseki_y2011m03 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m04 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-04-01' AND jdate < DATE '2011-05-01') DO INSTEAD INSERT INTO jisseki_y2011m04 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m05 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-05-01' AND jdate < DATE '2011-06-01') DO INSTEAD INSERT INTO jisseki_y2011m05 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m06 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-06-01' AND jdate < DATE '2011-07-01') DO INSTEAD INSERT INTO jisseki_y2011m06 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m07 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-07-01' AND jdate < DATE '2011-08-01') DO INSTEAD INSERT INTO jisseki_y2011m07 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m08 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-08-01' AND jdate < DATE '2011-09-01') DO INSTEAD INSERT INTO jisseki_y2011m08 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m09 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-09-01' AND jdate < DATE '2011-10-01') DO INSTEAD INSERT INTO jisseki_y2011m09 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m10 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-10-01' AND jdate < DATE '2011-11-01') DO INSTEAD INSERT INTO jisseki_y2011m10 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m11 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-11-01' AND jdate < DATE '2011-12-01') DO INSTEAD INSERT INTO jisseki_y2011m11 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); CREATE RULE jisseki_insert_y2011m12 AS ON INSERT TO jisseki WHERE (jdate >= DATE '2011-12-01' AND jdate < DATE '2012-01-01') DO INSTEAD INSERT INTO jisseki_y2011m12 VALUES(NEW.tid,NEW.jdate,NEW.data1,NEW.data2,NEW.data3,NEW.data4,NEW.data5); ------------------------------------------------------------------ ---- VIEW 参照用VIEWを生む -- ------------------------------------------------------------------ CREATE VIEW view_jisseki AS SELECT * FROM jisseki_y2007m01 UNION ALL SELECT * FROM jisseki_y2007m02 UNION ALL SELECT * FROM jisseki_y2007m03 UNION ALL SELECT * FROM jisseki_y2007m04 UNION ALL SELECT * FROM jisseki_y2007m05 UNION ALL SELECT * FROM jisseki_y2007m06 UNION ALL SELECT * FROM jisseki_y2007m07 UNION ALL SELECT * FROM jisseki_y2007m08 UNION ALL SELECT * FROM jisseki_y2007m09 UNION ALL SELECT * FROM jisseki_y2007m10 UNION ALL SELECT * FROM jisseki_y2007m11 UNION ALL SELECT * FROM jisseki_y2007m12 UNION ALL SELECT * FROM jisseki_y2008m01 UNION ALL SELECT * FROM jisseki_y2008m02 UNION ALL SELECT * FROM jisseki_y2008m03 UNION ALL SELECT * FROM jisseki_y2008m04 UNION ALL SELECT * FROM jisseki_y2008m05 UNION ALL SELECT * FROM jisseki_y2008m06 UNION ALL SELECT * FROM jisseki_y2008m07 UNION ALL SELECT * FROM jisseki_y2008m08 UNION ALL SELECT * FROM jisseki_y2008m09 UNION ALL SELECT * FROM jisseki_y2008m10 UNION ALL SELECT * FROM jisseki_y2008m11 UNION ALL SELECT * FROM jisseki_y2008m12 UNION ALL SELECT * FROM jisseki_y2009m01 UNION ALL SELECT * FROM jisseki_y2009m02 UNION ALL SELECT * FROM jisseki_y2009m03 UNION ALL SELECT * FROM jisseki_y2009m04 UNION ALL SELECT * FROM jisseki_y2009m05 UNION ALL SELECT * FROM jisseki_y2009m06 UNION ALL SELECT * FROM jisseki_y2009m07 UNION ALL SELECT * FROM jisseki_y2009m08 UNION ALL SELECT * FROM jisseki_y2009m09 UNION ALL SELECT * FROM jisseki_y2009m10 UNION ALL SELECT * FROM jisseki_y2009m11 UNION ALL SELECT * FROM jisseki_y2009m12 UNION ALL SELECT * FROM jisseki_y2010m01 UNION ALL SELECT * FROM jisseki_y2010m02 UNION ALL SELECT * FROM jisseki_y2010m03 UNION ALL SELECT * FROM jisseki_y2010m04 UNION ALL SELECT * FROM jisseki_y2010m05 UNION ALL SELECT * FROM jisseki_y2010m06 UNION ALL SELECT * FROM jisseki_y2010m07 UNION ALL SELECT * FROM jisseki_y2010m08 UNION ALL SELECT * FROM jisseki_y2010m09 UNION ALL SELECT * FROM jisseki_y2010m10 UNION ALL SELECT * FROM jisseki_y2010m11 UNION ALL SELECT * FROM jisseki_y2010m12 UNION ALL SELECT * FROM jisseki_y2011m01 UNION ALL SELECT * FROM jisseki_y2011m02 UNION ALL SELECT * FROM jisseki_y2011m03 UNION ALL SELECT * FROM jisseki_y2011m04 UNION ALL SELECT * FROM jisseki_y2011m05 UNION ALL SELECT * FROM jisseki_y2011m06 UNION ALL SELECT * FROM jisseki_y2011m07 UNION ALL SELECT * FROM jisseki_y2011m08 UNION ALL SELECT * FROM jisseki_y2011m09 UNION ALL SELECT * FROM jisseki_y2011m10 UNION ALL SELECT * FROM jisseki_y2011m11 UNION ALL SELECT * FROM jisseki_y2011m12; ------------------------------------------------------------------ ---- テストデータ -- ------------------------------------------------------------------ DELETE FROM jisseki_y2007m01; DELETE FROM jisseki_y2007m02; DELETE FROM jisseki_y2007m03; DELETE FROM jisseki_y2007m04; DELETE FROM jisseki_y2007m05; DELETE FROM jisseki_y2007m06; DELETE FROM jisseki_y2007m07; DELETE FROM jisseki_y2007m08; DELETE FROM jisseki_y2007m09; DELETE FROM jisseki_y2007m10; DELETE FROM jisseki_y2007m11; DELETE FROM jisseki_y2007m12; DELETE FROM jisseki_y2008m01; DELETE FROM jisseki_y2008m02; DELETE FROM jisseki_y2008m03; DELETE FROM jisseki_y2008m04; DELETE FROM jisseki_y2008m05; DELETE FROM jisseki_y2008m06; DELETE FROM jisseki_y2008m07; DELETE FROM jisseki_y2008m08; DELETE FROM jisseki_y2008m09; DELETE FROM jisseki_y2008m10; DELETE FROM jisseki_y2008m11; DELETE FROM jisseki_y2008m12; DELETE FROM jisseki_y2009m01; DELETE FROM jisseki_y2009m02; DELETE FROM jisseki_y2009m03; DELETE FROM jisseki_y2009m04; DELETE FROM jisseki_y2009m05; DELETE FROM jisseki_y2009m06; DELETE FROM jisseki_y2009m07; DELETE FROM jisseki_y2009m08; DELETE FROM jisseki_y2009m09; DELETE FROM jisseki_y2009m10; DELETE FROM jisseki_y2009m11; DELETE FROM jisseki_y2009m12; DELETE FROM jisseki_y2010m01; DELETE FROM jisseki_y2010m02; DELETE FROM jisseki_y2010m03; DELETE FROM jisseki_y2010m04; DELETE FROM jisseki_y2010m05; DELETE FROM jisseki_y2010m06; DELETE FROM jisseki_y2010m07; DELETE FROM jisseki_y2010m08; DELETE FROM jisseki_y2010m09; DELETE FROM jisseki_y2010m10; DELETE FROM jisseki_y2010m11; DELETE FROM jisseki_y2010m12; DELETE FROM jisseki_y2011m01; DELETE FROM jisseki_y2011m02; DELETE FROM jisseki_y2011m03; DELETE FROM jisseki_y2011m04; DELETE FROM jisseki_y2011m05; DELETE FROM jisseki_y2011m06; DELETE FROM jisseki_y2011m07; DELETE FROM jisseki_y2011m08; DELETE FROM jisseki_y2011m09; DELETE FROM jisseki_y2011m10; DELETE FROM jisseki_y2011m11; DELETE FROM jisseki_y2011m12; INSERT INTO jisseki VALUES(0,'2007-01-01',100001); INSERT INTO jisseki VALUES(0,'2007-01-02',100002); INSERT INTO jisseki VALUES(0,'2007-01-03',100003); INSERT INTO jisseki VALUES(0,'2007-01-04',100004); INSERT INTO jisseki VALUES(0,'2007-01-05',100005); INSERT INTO jisseki VALUES(0,'2007-02-01',100001); INSERT INTO jisseki VALUES(0,'2007-02-02',100002); INSERT INTO jisseki VALUES(0,'2007-02-03',100003); INSERT INTO jisseki VALUES(0,'2007-02-04',100004); INSERT INTO jisseki VALUES(0,'2007-02-05',100005); INSERT INTO jisseki VALUES(0,'2007-03-01',100001); INSERT INTO jisseki VALUES(0,'2007-03-02',100002); INSERT INTO jisseki VALUES(0,'2007-03-03',100003); INSERT INTO jisseki VALUES(0,'2007-03-04',100004); INSERT INTO jisseki VALUES(0,'2007-03-05',100005); INSERT INTO jisseki VALUES(0,'2007-04-01',100001); INSERT INTO jisseki VALUES(0,'2007-04-02',100002); INSERT INTO jisseki VALUES(0,'2007-04-03',100003); INSERT INTO jisseki VALUES(0,'2007-04-04',100004); INSERT INTO jisseki VALUES(0,'2007-04-05',100005); INSERT INTO jisseki VALUES(0,'2007-05-01',100001); INSERT INTO jisseki VALUES(0,'2007-05-02',100002); INSERT INTO jisseki VALUES(0,'2007-05-03',100003); INSERT INTO jisseki VALUES(0,'2007-05-04',100004); INSERT INTO jisseki VALUES(0,'2007-05-05',100005); INSERT INTO jisseki VALUES(0,'2007-06-01',100001); INSERT INTO jisseki VALUES(0,'2007-06-02',100002); INSERT INTO jisseki VALUES(0,'2007-06-03',100003); INSERT INTO jisseki VALUES(0,'2007-06-04',100004); INSERT INTO jisseki VALUES(0,'2007-06-05',100005); INSERT INTO jisseki VALUES(0,'2007-07-01',100001); INSERT INTO jisseki VALUES(0,'2007-07-02',100002); INSERT INTO jisseki VALUES(0,'2007-07-03',100003); INSERT INTO jisseki VALUES(0,'2007-07-04',100004); INSERT INTO jisseki VALUES(0,'2007-07-05',100005); INSERT INTO jisseki VALUES(0,'2007-08-01',100001); INSERT INTO jisseki VALUES(0,'2007-08-02',100002); INSERT INTO jisseki VALUES(0,'2007-08-03',100003); INSERT INTO jisseki VALUES(0,'2007-08-04',100004); INSERT INTO jisseki VALUES(0,'2007-08-05',100005); INSERT INTO jisseki VALUES(0,'2007-09-01',100001); INSERT INTO jisseki VALUES(0,'2007-09-02',100002); INSERT INTO jisseki VALUES(0,'2007-09-03',100003); INSERT INTO jisseki VALUES(0,'2007-09-04',100004); INSERT INTO jisseki VALUES(0,'2007-09-05',100005); INSERT INTO jisseki VALUES(0,'2007-10-01',100001); INSERT INTO jisseki VALUES(0,'2007-10-02',100002); INSERT INTO jisseki VALUES(0,'2007-10-03',100003); INSERT INTO jisseki VALUES(0,'2007-10-04',100004); INSERT INTO jisseki VALUES(0,'2007-10-05',100005); INSERT INTO jisseki VALUES(0,'2007-11-01',100001); INSERT INTO jisseki VALUES(0,'2007-11-02',100002); INSERT INTO jisseki VALUES(0,'2007-11-03',100003); INSERT INTO jisseki VALUES(0,'2007-11-04',100004); INSERT INTO jisseki VALUES(0,'2007-11-05',100005); INSERT INTO jisseki VALUES(0,'2007-12-01',100001); INSERT INTO jisseki VALUES(0,'2007-12-02',100002); INSERT INTO jisseki VALUES(0,'2007-12-03',100003); INSERT INTO jisseki VALUES(0,'2007-12-04',100004); INSERT INTO jisseki VALUES(0,'2007-12-05',100005);
説明:
親テーブル:jisseki
子テーブル:jisseki_y[YYYY]m[MM]
子テーブルは任意の期間分作成する。
後から追加も可能。
後から追加する際は、INSERT用のルールの追加と全件抽出用ビューの再定義が必要ではあるが、既存データが存在するテーブルに対しての処理は行わないので、比較的安心して子テーブルの追加ができる。
利用方法:
INSERT時は、親テーブルであるjissekiに対して行う。
jissekiにINSERT文を発行すると、RULEに基づいて、自動的に該当する子テーブルにデータがINSERTされる。
データ抽出時は、「月」単位での処理であれば、子テーブル名を直接指定してSELECTすれば良い。
「月」を跨る処理の場合、view_jissekiを指定してSELECTすれば良い。
備考:
まだ詳しく調査・評価はしていないが、テーブル個別指定でも、ビュー指定でも、パーティショニングの内部仕様によると、パフォーマンスに変わりはないはず。。。。
子テーブルは物理的に別ファイル?!になってるのかな。俺の記憶が確かなら。
ビジネスにおける繋がり
これ
↓
http://www.itmedia.co.jp/enterprise/articles/0706/25/news024.html
必ずしも、無理してでもつながりを広げることが、メリットになるわけではないという記事を見つけた。
鵜呑みにはしないけど、納得できる部分もあるし、やはり、自分を偽らず、フランクに話せてかつビジネスに繋がれば一番いいのかなぁ。
生産性かれこれ以前に
人は、一度にひとつのことしかできない。
これ当たり前。
PostgreSQLのパーティショニングを試してみる
- マスタテーブルを定義して、テーブル作成。
- その後、マスタテーブルを継承して、子テーブルを作成
注意:マスタテーブルには制約かれこれは付加しない。
注意:子テーブルに主キー、インデックスなどを付加する。
気になること・・・・
あくまで、マスタテーブルと子テーブルは別物という扱い。
これだと、あまりパーティショニングの利便性が良くない。
通常考えられる運用ってーと、
1年間でひとつのマスタテーブルを用意し、1月〜12月までの各月を子テーブルにしたいといった要求がポピュラーなように思える。
このとき、データの追加は常にひとつのテーブルに対して行い、参照のパフォーマンスアップのために、パーティショニングしたテーブルを利用したい。
しかし、PostgreSQLのパーティショニングは、そもそも、そういう運用を前提にしていない様子。
Oracleは確か、もっと柔軟なパーティショニング機能を用意していたと思われる。
でも、エンタープライズ版以上じゃないと、パーティショング機能がない。
これじゃ、八方ふさがりだ。。。。
いや、そもそも、そういうでかいデータ扱うなら、エンタープライズ規模のシステムになるだろうって見解なんかな?Oracleは。
でも、業界によっては、データの量は膨大な量に上るが、運用規模は小さいという運用が多々ある。。。。
いいソリューションってないんかな?