從 MySQL 遷移到 PostgreSQL 時,習慣使用 USE db_name 切換資料庫。PostgreSQL 沒有 USE 命令,而是通過 search_path 解析未限定 Schema 的物件名。
SET search_path TO schema_name;
-- 假設 schema mySchema 含表 person
-- MySQL 風格(PostgreSQL 不支援)
-- USE mySchema; SELECT * FROM person;
-- PostgreSQL 正確做法
SET search_path TO mySchema;
SELECT * FROM person; -- 自動解析為 mySchema.person
SET search_path 僅影響**當前會話**,連線關閉即失效。$user(同名 schema)→ public→ search_path 列表順序。postgresql.conf:search_path = '$user, public, mySchema' 或對角色設定 ALTER ROLE user SET search_path = ...。SHOW search_path;
掌握 search_path 即可在 PostgreSQL 中像 MySQL 一樣輕鬆切換命名空間,避免每次查詢都寫完整 schema.table。