我們可以在 Oracle 中的一條陳述句中創建多個磁區,但是我們如何在 PostgreSQL 中實作相同的功能。
uj5u.com熱心網友回復:
簡單:CREATE TABLE在一個陳述句中運行多個DO陳述句:
DO
'BEGIN
CREATE TABLE part1 PARTITION OF tab FOR VALUES IN (1);
CREATE TABLE part2 PARTITION OF tab FOR VALUES IN (2);
CREATE TABLE part3 PARTITION OF tab FOR VALUES IN (3);
END';
但我不明白為什么用一條 SQL 陳述句來做這件事對你來說如此重要。
uj5u.com熱心網友回復:
PostgreSQL 中不存在等價物。由于它實作磁區系統的方式,它需要您一次創建多個表。您必須創建磁區表,而不是在那里指定其磁區和邊界,然后您需要將每個磁區創建為一個單獨的表,為每個磁區指定磁區邊界。
與往常一樣,它還有更多內容,但以下內容是對該主題的簡化:在 Oracle表磁區中,是一種在“幕后”及其內部結構中劃分原始一流表的方法,而在 PostgreSQL 中則相反——磁區是獨立的、一流的表,而磁區表僅將它們鏈接在一起。因此,磁區不能在 Oracle 中單獨存在并且不能被分離、單獨參考或鏈接,并且您通常需要通過磁區表來與其磁區互動。在 PostgreSQL 中,在大多數情況下,您可以像使用常規表一樣使用磁區,而沒有它們,磁區表就無法真正作業,充當空視圖。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367884.html
標籤:sql PostgreSQL的 甲骨文 分区
上一篇:Oracle中自定義生成的身份列
下一篇:插入超過40k 行時如何提高性能
