在Postgres中,可以使用
我使用了 \l 语句进行检查,确认数据库 "databaseName" 存在。 如果我然后...
\i <path>
命令从文件执行命令。我通过创建一个数据库、一个模式、一些表和一个视图来实现这个功能,具体操作请参考下面的小文件:DROP DATABASE IF EXISTS databaseName;
CREATE DATABASE databaseName ;
CREATE SCHEMA IF NOT EXISTS databaseName_schema;
CREATE TABLE IF NOT EXISTS databaseName_schema.tableName (
id SERIAL PRIMARY KEY,
name VARCHAR(80),
surename VARCHAR(80),
);
CREATE TABLE IF NOT EXISTS databaseName_schema.tableMovies (
id SERIAL PRIMARY KEY,
priority SERIAL,
movieName VARCHAR(40)
);
create or replace view versionViewTest as select version();
我使用了 \l 语句进行检查,确认数据库 "databaseName" 存在。 如果我然后...
DROP DATABASE databaseName;
重新检查一下,数据库已经消失了!但是,当我再次执行同样的脚本时
\i <path>
内容为:
...模式已存在,跳过创建模式 ...关系已经存在,跳过创建表
我已经花了一些时间阅读关于模式、关系和Postgres的文章,但是仍然不知道我缺少什么。
我的期望是:如果我删除一个数据库,它包含的组件也应该被删除,但是某种情况下psql并没有删除它们,而是在将来创建具有完全相同名称的数据库时重用它们。 为什么会这样呢? 我应该如何删除带有全部内容的数据库?
PS:任何关于该主题的讲座都受欢迎,以及直接回答。
template1
,也许你可以在模板数据库中找到那些模式和表? - user330315