![不同表空间中的表分区](https://linux22.com/image/679083/%E4%B8%8D%E5%90%8C%E8%A1%A8%E7%A9%BA%E9%97%B4%E4%B8%AD%E7%9A%84%E8%A1%A8%E5%88%86%E5%8C%BA.png)
我在一个表空间中创建了一个“主表”,然后在同一个表空间中创建了一个分区,并在已安装的 NFS 共享中创建的另一个表空间中创建了第二个分区。
主表称为documents_master,我有两个子表,分别称为documents_current和documents_old。
布局如下:
table | tablespace | location
------------------+------------+------------
documents_master | public | /var/lib/postgresql/data
documents_current | public | /var/lib/postgresql/data
documents_old | old_data | /mnt/storage1
然后,我从“documents”表中复制数据,目的是通过发出以下命令填充 documents_current 和 documents_old:
insert into documents_master select * from documents;
这会按我预期的那样填满两个子表,但是当我检查磁盘空间时,所有内容看起来都存储在本地磁盘中。
然后,如果我将 documents_master 和 documents_current 的表空间更改为“old_data”表空间,然后再次插入所有内容,则数据将存储在已安装的分区中。
这是一个错误吗?我做错了什么吗?
我在 x86_64-unknown-linux-gnu 上使用 PostgreSQL 9.3.9,由 gcc 编译(Ubuntu 4.8.4-2ubuntu1~14.04)4.8.4,64 位