pgsql 怎么查询出所有非分区表
时间: 2024-05-09 09:20:13 浏览: 15
可以使用以下 SQL 查询语句来查询所有非分区表:
```
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_type = 'BASE TABLE'
AND NOT EXISTS (
SELECT 1
FROM pg_partitioned_table
WHERE pg_partitioned_table.relid = (
SELECT oid
FROM pg_class
WHERE relname = table_name
)
);
```
该语句使用 `information_schema.tables` 和 `pg_partitioned_table` 进行联合查询。其中,`information_schema.tables` 表用于获取关于所有表的信息,`pg_partitioned_table` 表用于获取关于所有分区表的信息。
该查询语句首先选择 `public` 模式下的所有基本表(即非分区表),然后检查每个表是否在 `pg_partitioned_table` 中有对应的条目。如果没有,则说明该表不是分区表。最后,该语句返回所有非分区表的名称。
相关问题
pgsql普通表转分区表
将 PostgreSQL 中的普通表转换为分区表,需要以下步骤:
1. 创建分区表:首先需要创建一个与原来普通表结构相同的分区表,可以使用以下命令:
```sql
CREATE TABLE my_partitioned_table (
like my_table INCLUDING ALL
) PARTITION BY RANGE (column_to_partition);
```
此命令将创建一个名为 my_partitioned_table 的分区表,其结构与 my_table 相同,并且将根据 column_to_partition 列的值进行分区。
2. 创建分区:使用以下命令为分区表创建分区:
```sql
CREATE TABLE my_partition_1 PARTITION OF my_partitioned_table FOR VALUES FROM (min_value) TO (max_value);
```
此命令将创建一个名为 my_partition_1 的分区,其包含所有 column_to_partition 列值在 min_value 和 max_value 之间的行。可以根据需要创建多个分区。
3. 将数据从原表中导入分区表:使用以下命令将数据从 my_table 中导入到 my_partitioned_table 中:
```sql
INSERT INTO my_partitioned_table SELECT * FROM my_table;
```
此命令将从 my_table 中选择所有行,并将它们插入到 my_partitioned_table 中。由于 my_partitioned_table 是一个分区表,将在正确的分区中自动插入这些行。
4. 删除原表:最后,使用以下命令删除原来的普通表:
```sql
DROP TABLE my_table;
```
这样就完成了将 PostgreSQL 中的普通表转换为分区表的过程。注意:在转换过程中,需要对数据进行备份以确保不会丢失数据。
pgsql 删除分区表
通过在pgSQL版本10中引入声明式分区表,可以实现删除分区表。可以使用以下函数来删除分区表:
```sql
CREATE OR REPLACE FUNCTION deletePartitionIfExists (tb_name_partiton_val VARCHAR) RETURNS VOID AS $body$
DECLARE
master_name TEXT := tb_name_partiton_val; -- 删除分区表表名
BEGIN
-- 判断分区名称是否存在,不存在时才需要创建
IF to_regclass (tb_name_partiton_val) IS NOT NULL THEN
-- 执行删除分区
EXECUTE format ('DROP TABLE %s', tb_name_partiton_val);
END IF;
END;
$body$ LANGUAGE plpgsql;
```
这个函数接受分区表的名字作为参数,并通过执行`DROP TABLE`语句来删除分区表。如果分区表不存在,则不会执行删除操作。这样就可以实现删除pgSQL的分区表。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [pgsql在分区表与非分区表中自由切换](https://blog.csdn.net/zjcxc/article/details/120239954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [postgre sql 将非分区表转化为分区表,动态创建和删除分区](https://blog.csdn.net/qq_41982570/article/details/126878258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [PostgreSQL表分区和子表及删除所有的数据库表.zip](https://download.csdn.net/download/as4589sd/12169679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)