无法写入散列连接临时文件:设备上没有 space

could not write to hash-join temporary file: No space left on device

我正在执行 PostgreSQL 函数来更新一个 table,它有大量数据并且每天更新大约 100000 条记录。在更新期间,我收到一条错误消息:

"could not write to hash-join temporary file: No space left on device"

我还没有真正能够得到有用的东西来克服这个错误。我得到了一些东西,上面写着设置一个临时 table spaces。但是我找不到如何创建一个临时的 table space 在执行更新过程期间存储数据的地方。

  1. SQL> create tablespace temp_tbs location '/some/big/disk';
  2. 在 postgresql.conf 中更改 temp_tablespaces = 'temp_tbs'
  3. select pg_reload_conf();
  4. 享受

我遇到了同样的问题,但我使用的是 docker。

如果您也在使用 docker,请访问:

Docker Preferences > Disk Panel > Disk image size 并增加它。

它解决了我的问题。