PostgreSQL脚本中替代MySQL USE命令切换库创建ENUM类型
在PostgreSQL Docker初始化脚本中切换数据库创建ENUM类型
PostgreSQL没有MySQL那样的USE命令,但可以通过psql的专属元命令\c(或\connect)切换当前连接的数据库,而Docker初始化PostgreSQL时默认用psql执行脚本,完全适配这个场景。
直接修改你的SQL脚本即可:
CREATE DATABASE "products" WITH OWNER = postgres ENCODING = "UTF8" CONNECTION LIMIT = -1 IS_TEMPLATE = False; CREATE DATABASE "accounts" WITH OWNER = postgres ENCODING = "UTF8" CONNECTION LIMIT = -1 IS_TEMPLATE = False; -- 切换到accounts数据库(psql元命令) \c accounts CREATE TYPE role as ENUM ('employee', 'admin', 'customer');
补充说明
\c accounts是psql的专属元命令,执行后后续所有SQL语句都会在accounts数据库中运行。- 这个方案完全适配Docker初始化流程,官方PostgreSQL镜像会通过psql运行挂载的初始化脚本,支持这类psql专属命令。
- 若用其他不支持psql元命令的工具执行脚本,可单独连接
accounts数据库执行CREATE TYPE语句,但Docker场景下用元命令是最简便的方式。
内容的提问来源于stack exchange,提问作者mork ruhtra
相关产品推荐
相关产品推荐

