PostgreSQL LIST分割槽實現:繼承表+函式+觸發器。
======實現LIST分割槽:
PostgreSQL LIST分割槽實現:繼承表+函式+觸發器。
1、建表
create table tbl(a int, b varchar(10));
create table tbl_1 (check ( b = 'jason')) INHERITS (tbl);
create table tbl_2 (check ( b = 'lucy')) INHERITS (tbl);
create table tbl_other (check( b not in ('lucy','jason'))) INHERITS (tbl);
2、建立函式
CREATE OR REPLACE FUNCTION tbl_part_tg()
RETURNS TRIGGER AS $$
BEGIN
IF ( NEW.b = 'jason' ) THEN
INSERT INTO tbl_1 VALUES (NEW.*);
ELSIF ( NEW.b = 'lucy') THEN
INSERT INTO tbl_2 VALUES (NEW.*);
ELSIF (NEW.b not in ('jason','lucy')) THEN
INSERT INTO tbl_other VALUES (NEW.*);
END IF;
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
3、建立觸發器
CREATE TRIGGER insert_tbl_part_tg
BEFORE INSERT ON tbl
FOR EACH ROW EXECUTE PROCEDURE tbl_part_tg();
4、插入資料
insert into tbl values(1,'jason');
insert into tbl values(2,'lucy');
insert into tbl values(3,'baichi');
insert into tbl values(4,'baichi1');
insert into tbl values(5,'baichi2');
5、結果
postgres=# select * from tbl_1;
a | b
---+-------
1 | jason
(1 row)
postgres=# select * from tbl_2;
a | b
---+------
2 | lucy
(1 row)
postgres=# select * from tbl_other;
a | b
---+---------
3 | baichi
4 | baichi1
5 | baichi2
(3 rows)
postgres=# select * from tbl;
a | b
---+---------
1 | jason
2 | lucy
3 | baichi
4 | baichi1
5 | baichi2
(5 rows)
postgres=#
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27126919/viewspace-2284534/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL使用表繼承實現分割槽表SQL繼承
- PostgreSQL分割槽表、繼承表記錄去重方法SQL繼承
- PostgreSQL學習手冊(表的繼承和分割槽)SQL繼承
- postgresql分割槽表實現方式SQL
- PostgreSQL 表繼承SQL繼承
- PostgreSQL:表繼承SQL繼承
- postgresql分割槽表SQL
- PostgreSQL用CTE語法+繼承實現拆分大表SQL繼承
- 全面學習分割槽表及分割槽索引(12)--修改list表分割槽索引
- MySQL的List分割槽表MySql
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- PostgreSQL用CTE語法+繼承實現平滑拆分大表SQL繼承
- PostgreSQL:傳統分割槽表SQL
- PostgreSQL:內建分割槽表SQL
- Mysql表分割槽實現MySql
- postgresql 按小時分表(含觸發器)的實現方式SQL觸發器
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- Oracle 到 PostgreSQL參考分割槽實現OracleSQL
- PostgreSQL10.0preview功能增強-觸發器函式內建中間表SQLView觸發器函式
- PostgreSQL分割槽表更新思路SQL
- javascript使用call()函式實現繼承程式碼例項JavaScript函式繼承
- PostgreSQL和oracle表分割槽對比SQLOracle
- 全面學習分割槽表及分割槽索引(6)--建立range-list組合分割槽索引
- CSS樣式表繼承CSS繼承
- MySQL LIST分割槽MySql
- postgresql分割槽表修改資料表欄位SQL
- js 使用建構函式和原型鏈實現繼承操作JS函式原型繼承
- 在建構函式內使用call()或apply()實現繼承函式APP繼承
- HGDB的分割槽表實現SQL Server的分割槽檢視SQLServer
- JavaScript中的函式繼承JavaScript函式繼承
- PostgreSQL10.0內建分割槽表SQL
- 分割槽表-實戰
- PostgreSQL中的繼承SQL繼承
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- postgresql 觸發器操作SQL觸發器
- js建構函式的繼承JS函式繼承
- 繼承中的建構函式繼承函式
- Java建構函式的繼承Java函式繼承