我需要使用PostgreSQL创建一个新数据库,并且需要 通过创建数据库并初始化“数据库” 表。
我正在考虑创建一个init.sql文件并使用该文件
初始化docker映像时与<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${map}" var="entry">
batchNumber = ${entry.key}, value = ${entry.value} <br>
</c:forEach>
一起使用。
我需要一个照顾Docker
(根据模式版本有条件地创建模式和表)数据库的示例。
我有下面的伪示例,并且希望看到一个真实的Postgres示例。
伪示例:
1)创建不存在的数据库
2)设置或增加数据库设计版本
//创建版本0的表
3)创建表(如果不存在)
//创建版本1表
4)创建将来的版本表并应用表更改
答案 0 :(得分:2)
CREATE DATABASE只能作为单个语句执行。 因此它不能在函数或DO语句中运行。
和
DO
$do$
BEGIN
IF EXISTS (SELECT 1 FROM pg_database WHERE datname = 'mydb') THEN
RAISE NOTICE 'Database already exists';
ELSE
PERFORM dblink_exec('dbname=' || current_database() -- current db
, 'CREATE DATABASE mydb');
END IF;
END
$do$;