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/LightDB 分割槽表之分割槽裁剪SQL
- PostgreSQL用CTE語法+繼承實現拆分大表SQL繼承
- PostgreSQL:傳統分割槽表SQL
- PostgreSQL:內建分割槽表SQL
- Mysql表分割槽實現MySql
- Oracle 到 PostgreSQL參考分割槽實現OracleSQL
- PostgreSQL分割槽表更新思路SQL
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- postgresql 按小時分表(含觸發器)的實現方式SQL觸發器
- 在建構函式內使用call()或apply()實現繼承函式APP繼承
- HGDB的分割槽表實現SQL Server的分割槽檢視SQLServer
- 分割槽表-實戰
- js 使用建構函式和原型鏈實現繼承操作JS函式原型繼承
- CSS樣式表繼承CSS繼承
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- JavaScript中的函式繼承JavaScript函式繼承
- PostgreSQL/LightDB分割槽表之常見問題SQL
- oracle分割槽表和分割槽表exchangeOracle
- 分割槽函式Partition By的基本用法函式
- Mysql表分割槽實操MySql
- 繼承中的建構函式繼承函式
- js建構函式的繼承JS函式繼承
- oracle分割槽表和非分割槽表exchangeOracle
- PostgreSQL中的繼承SQL繼承
- C++單繼承、多繼承情況下的虛擬函式表分析C++繼承函式
- PostgreSQL11preview-分割槽表增強彙總SQLView
- postgresql 9.6 分割槽表測試方案與記錄SQL
- prototype實現繼承繼承
- 實現JavaScript繼承JavaScript繼承
- 建構函式、原型、原型鏈、繼承函式原型繼承
- PostgreSQL 原始碼解讀(98)- 分割槽表#4(資料查詢路由#1-“擴充套件”分割槽表)SQL原始碼路由套件
- PG的非分割槽表線上轉分割槽表
- 觸發器實現表資料自動更新觸發器
- MySQL怎麼利用函式和觸發器實現非主鍵自增?MySql函式觸發器