[{"data":1,"prerenderedAt":161},["ShallowReactive",2],{"content:\u002Fposts\u002Fpostgresql-fdw":3,"surround:\u002Fposts\u002Fpostgresql-fdw":152},{"id":4,"title":5,"body":6,"categories":128,"date":130,"description":131,"draft":132,"extension":133,"image":134,"meta":135,"navigation":137,"path":138,"permalink":134,"pinned":132,"published":134,"readingTime":139,"recommend":134,"references":134,"seo":144,"sitemap":145,"stem":146,"tags":147,"type":150,"updated":130,"__hash__":151},"content\u002Fposts\u002Fposts\u002Fpostgresql-fdw.md","PostgreSQL 外部表（FDW）跨库查询配置",{"type":7,"value":8,"toc":119},"minimark",[9,19,27,42,47,58,62,68,72,78,82,88,98,101,105,111],[10,11,15],"alert",{"type":12,"icon":13,"title":14},"info","tabler:robot","AI 迁移提示",[16,17,18],"p",{},"本文由 AI 协助从旧站迁移，尚未完成逐篇人工审校；内容如有疏漏，将在复核后修订。",[16,20,21,22,26],{},"PostgreSQL 不支持跨库查询，可通过 ",[23,24,25],"strong",{},"Foreign Data Wrapper（FDW）"," 访问外部数据库的表，实现类似跨库查询的效果。",[28,29,30,33,38],"blockquote",{},[16,31,32],{},"相关文章：",[34,35],"link-card",{"link":36,"title":37},"\u002Fposts\u002Fpostgresql-install","PostgreSQL 安装指南",[34,39],{"link":40,"title":41},"\u002Fposts\u002Fpostgresql-config","PostgreSQL 远程访问与数据目录迁移",[43,44,46],"h2",{"id":45},"一安装扩展","一、安装扩展",[48,49,55],"pre",{"className":50,"code":52,"language":53,"meta":54},[51],"language-sql","-- 在本地数据库执行\nCREATE EXTENSION IF NOT EXISTS postgres_fdw;\n","sql","",[56,57,52],"code",{"__ignoreMap":54},[43,59,61],{"id":60},"二创建远程服务器","二、创建远程服务器",[48,63,66],{"className":64,"code":65,"language":53,"meta":54},[51],"CREATE SERVER remote_server\nFOREIGN DATA WRAPPER postgres_fdw\nOPTIONS (\n  host '192.168.1.100',\n  dbname 'target_db',\n  port '5432'\n);\n",[56,67,65],{"__ignoreMap":54},[43,69,71],{"id":70},"三创建用户映射","三、创建用户映射",[48,73,76],{"className":74,"code":75,"language":53,"meta":54},[51],"CREATE USER MAPPING FOR postgres\nSERVER remote_server\nOPTIONS (\n  user 'postgres',\n  password 'remote-password'\n);\n",[56,77,75],{"__ignoreMap":54},[43,79,81],{"id":80},"四导入远程表","四、导入远程表",[48,83,86],{"className":84,"code":85,"language":53,"meta":54},[51],"-- 导入单个表\nIMPORT FOREIGN SCHEMA public\nLIMIT TO (table_name)\nFROM SERVER remote_server\nINTO public;\n\n-- 导入多个表\nIMPORT FOREIGN SCHEMA public\nLIMIT TO (table1, table2, table3)\nFROM SERVER remote_server\nINTO public;\n\n-- 导入整个 schema（慎用）\nIMPORT FOREIGN SCHEMA public\nFROM SERVER remote_server\nINTO public;\n",[56,87,85],{"__ignoreMap":54},[10,89,91],{"type":90},"warning",[16,92,93,94,97],{},"导入整个 schema 可能与本地表名冲突，建议使用 ",[56,95,96],{"code":96},"LIMIT TO"," 指定需要的表。",[16,99,100],{},"导入后即可像本地表一样使用。",[43,102,104],{"id":103},"五管理命令","五、管理命令",[48,106,109],{"className":107,"code":108,"language":53,"meta":54},[51],"-- 查看所有外部服务器\nSELECT * FROM pg_foreign_server;\n\n-- 查看导入的外部表\nSELECT * FROM information_schema.foreign_tables;\n\n-- 修改服务器连接信息\nALTER SERVER remote_server\nOPTIONS (SET host '192.168.1.200', SET port '5432', SET dbname 'new_db');\n\n-- 修改用户映射密码\nALTER USER MAPPING FOR CURRENT_USER\nSERVER remote_server\nOPTIONS (SET password 'new-password');\n\n-- 增加批量获取行数（优化性能）\nALTER SERVER remote_server OPTIONS (ADD fetch_size '50000');\n\n-- 删除外部表\nDROP FOREIGN TABLE table_name;\n\n-- 删除用户映射\nDROP USER MAPPING FOR postgres SERVER remote_server;\n\n-- 删除服务器（CASCADE 同时删除依赖的外部表）\nDROP SERVER remote_server CASCADE;\n\n-- 删除扩展\nDROP EXTENSION postgres_fdw;\n",[56,110,108],{"__ignoreMap":54},[10,112,113],{"type":90},[16,114,115,118],{},[56,116,117],{"code":117},"CASCADE"," 会同时删除所有依赖该服务器的外部表，可能导致业务中断。请确认无依赖后再执行。",{"title":54,"searchDepth":120,"depth":120,"links":121},4,[122,124,125,126,127],{"id":45,"depth":123,"text":46},2,{"id":60,"depth":123,"text":61},{"id":70,"depth":123,"text":71},{"id":80,"depth":123,"text":81},{"id":103,"depth":123,"text":104},[129],"技术","2026-01-26 00:00:00","使用 postgres_fdw 扩展配置 PostgreSQL 外部数据包装器，实现跨数据库实例的表查询，解决 PostgreSQL 不支持跨库查询的限制。",false,"md",null,{"slots":136},{},true,"\u002Fposts\u002Fpostgresql-fdw",{"text":140,"minutes":141,"time":142,"words":143},"3 min read",2.075,124500,415,{"title":5,"description":131},{"loc":138},"posts\u002Fposts\u002Fpostgresql-fdw",[148,149],"PostgreSQL","数据库","tech","mqLSYOl5Zg2HNybvLHv4vRyLR2L6YnabtlT6u2zHSok",[153,156],{"title":41,"path":40,"stem":154,"date":155,"type":150,"children":-1},"posts\u002Fposts\u002Fpostgresql-config","2026-01-25 00:00:00",{"title":157,"path":158,"stem":159,"date":160,"type":150,"children":-1},"PostgreSQL 备份与恢复","\u002Fposts\u002Fpostgresql-backup","posts\u002Fposts\u002Fpostgresql-backup","2026-01-27 00:00:00",1788712224816]