我有一個用例,我需要根據城市對Oracle表進行分區。現在我不知道這個城市。所以在這種情況下,我將如何創建分區。 (順便說一下,我已經做了哈希分區(它不保證兩個城市的數據將在同一分區),但我想要分開的城市的數據在單獨的分區)在新值可能出現的所有不同值上分開
1
A
回答
2
最明智的做法是使用存儲插入/更新程序,以確保分區存在(如Egor Skriptunoff所建議的)。
如果你不想使用這種方法,你可以使用列表分區和一個預先定義的城市列表和一個默認分區,其中存儲「未知」城市的所有值。然後,您可以設置拆分「未知」分區並創建新的城市分區定期清理作業:
與三個已知城市
create table shops (
pk number not null primary key,
name varchar2(30) not null,
city varchar2(30) not null)
partition by list(city)
(partition shops_paris values ('Paris'),
partition shops_berlin values ('Berlin'),
partition shops_london values ('London'),
partition shops_unknown values (default)
);
添加一些數據分區設置表(注意,我們有一個 「未知」 的城市,慕尼黑)
insert into shops(pk, name, city) values (1, 'Manufactum', 'Munich');
insert into shops(pk, name, city) values (2, 'KaDeWe', 'Berlin');
insert into shops(pk, name, city) values (3, 'Harrods', 'London');
insert into shops(pk, name, city) values (4, 'Galeries Lafayette', 'Paris');
查看我們未知的分區 - >我們得到了一個新的城市, '慕尼黑'
select * from shops partition (shops_unknown);
創建新分區
alter table shops split partition shops_unknown
values ('Munich') into (partition shops_munich, partition shops_unknown);
0
新分區應明確創建。
包括所有相關的邏輯放到一個過程:如果存在分區
- 檢查
相關問題
- 1. NSMutableDictionary給予所有相同的值,而不是新的新值
- 2. MySQL的:不能更新現有NULL值
- 3. 在搜索特定的密鑰時可能出現多少個不同的命令可能出現鍵值?
- 4. HashMap:添加新的可變值將所有現有值更改爲該值
- 5. 查詢每天出現的所有值
- 6. 替換列中所有出現的值
- 7. 透視表,以使所有值出現在同一行,多列
- 8. codeigniter分頁在所有頁面上顯示相同的值
- 9. 選擇可能出現在不同列中的唯一值的計數
- 10. 如何替換文件中具有不同值的字段的所有出現?
- 11. 如何在iOS UITest上獲取pickerWheels的所有可能值?
- 12. 獲取所選值的不同部分
- 13. NumPy的,分配新值到現有ndarray
- 14. 返回所有可能的預測值
- 15. 獲取所有可能的值組合
- 16. 計算utf8的所有可能值
- 17. 測試常量的所有可能值
- 18. 遍歷所有可能的浮點值
- 19. mysql其中列=所有可能的值
- 20. 如何更新所有鍵值的出現
- 21. 分配值,爲所有元素現場
- 22. 找出所有不同的值在MySQL表
- 23. 在單行顯示所有的子值,分開,它有相同的父母ID
- 24. 刷新給出錯誤,「發現零,同時展開一個可選值」
- 25. 捕捉所有「意外發現零,同時解開一個可選值」
- 26. 是否有可能知道Telerik MVC Combobox值是新值還是現值?
- 27. 是否有可能在SiteCatalyst/Adobe Analytics中的現有eVar值上追加新值
- 28. 是否有可能將推值插入現有的數組值?
- 29. 一組值中所有可能的分組數量?
- 30. 需要幫助將可能或可能不具有相同值但具有相同帳戶的列分組