postgresql10以上的自動分區分表功能


一.列分表

1.首先創建主分區表:

create table fenbiao(
id int,
year varchar
) partition by list(year)
這里設置的是根據year列進行數據分表;創建后使用navicat是看不到的;

2.創建分表:

create table fenbiao_2017 partition of fenbiao for values in ('2017')
create table fenbiao_2018 partition of fenbiao for values in ('2018')
這樣這兩天數據會依靠規則插入到不同分表中,如果插入一條不符合規則的數據,則會報錯誤:no partition of relation "fenbiao" found for row.

 

二.范圍分表

1.以year列為范圍進行分表

create table fenbiao2(
id int,
year varchar
) partition by range(year)
2.創建分表


create table fenbiao2_2018_2020 partition of fenbiao2 for values from ('2018') to ('2020')

create table fenbiao2_2020_2030 partition of fenbiao2 for values from ('2020') to ('2030')
注意:此時插入year=2020會插入到下面的表;如下面表范圍為2021到2030,則會報錯;同時插入2030也會報錯;范圍相當於時a<=year<b;

 
————————————————
版權聲明:本文為CSDN博主「myth_gy」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/myth_g/article/details/83748066


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM