标签: schema

如何列出 PostgreSQL 中的所有模式?

使用 PostgreSQL v9.1 时,如何使用 SQL 列出所有模式?

我期待着以下内容:

SELECT something FROM pg_blah;
Run Code Online (Sandbox Code Playgroud)

schema postgresql postgresql-9.1

340
推荐指数
4
解决办法
64万
查看次数

数据库与用户与架构之间的区别

我真的对术语数据库、用户和模式感到困惑。谁能解释一下它们之间的区别(如果是的话)?

如果它们相同,那么它们之间有什么相似之处?我们如何使用它们?我们如何创建它们?

schema oracle users

98
推荐指数
4
解决办法
25万
查看次数

这个键值的数据库模式有名称吗?

我们处理来自客户的常规数据馈送,该客户刚刚将其数据库从一种看起来很熟悉的表单(每个实体一行,每个属性一列)重构为一个我似乎不熟悉的表单(每个实体每个属性一行):

之前:每个属性一列

ID   Ht_cm   wt_kg   Age_yr  ... 
1      190      82     43    ...
2      170      60     22    ...
3      205      90     51    ...
Run Code Online (Sandbox Code Playgroud)

之后:所有属性的一列

ID    Metric   Value
 1     Ht_cm     190
 1     Wt_kg     82
 1     Age_yr    43
 1      ...
 2     Ht_cm     170
 2     Wt_kg     60
 2     Age_yr    22
 2     ...
 3     Ht_cm     205
 3     Wt_kg     90
 3     Age_yr    51
 3     ...
Run Code Online (Sandbox Code Playgroud)

这个数据库结构有名字吗?有哪些相对优势?旧方法似乎更容易对特定属性(非空、非负等)设置有效性约束,并且更容易计算平均值。但是我可以看到在不重构数据库的情况下添加新属性可能会更容易。这是构建数据的标准/首选方式吗?

schema database-design ontology eav

70
推荐指数
5
解决办法
1万
查看次数

组如何跟踪数据库架构更改?

哪些版本控制方法可以帮助团队人员跟踪数据库架构更改?

mysql schema version-control

68
推荐指数
5
解决办法
1万
查看次数

无需停机即可更改架构和将数据迁移到实时数据库的最佳实践?

如何在不停机的情况下对实时数据库进行架构更改?

例如,假设我有一个 PostgreSQL 数据库,其中包含一个包含各种用户数据(如电子邮件地址等)的表,所有这些数据都与特定用户相关联。如果我想将电子邮件地址移动到一个新的专用表,我必须更改架构,然后将电子邮件数据迁移到新表。如何在不停止写入原始表的情况下完成此操作?当然,当数据从旧表写入新表时,新数据会继续写入旧表而被遗漏,对吗?

我想这个问题经常出现,但我找不到任何标准的解决方案来处理它。

这篇文章解决了这个问题,但我并没有真正理解第3步。他说要写入两个表,然后将旧数据从第一个表迁移到新表。您如何确保只迁移旧数据?

(我在 Heroku 上使用PostgreSQL。)

schema postgresql migration best-practices deployment

54
推荐指数
1
解决办法
3万
查看次数

错误:没有选择要在其中创建的架构

我正在处理一个 amazon RDS postgresql 数据库,我知道公共模式存在一些问题(也许它被删除了)。但显然模式存在,无论如何问题没有解决。这是一个使用新创建的空数据库的示例会话:

mydb=> CREATE TABLE distributors (
mydb(>     did     integer,
mydb(>     name    varchar(40) UNIQUE
mydb(> );
ERROR:  no schema has been selected to create in
mydb=> show search_path;
  search_path   
----------------
 "$user",public
(1 row)

mydb=> create schema public;
ERROR:  schema "public" already exists
Run Code Online (Sandbox Code Playgroud)

任何提示?我应该寻找什么?

解决了。 感谢 Daniel Vérité 的回答,我已经解决了以下问题:

grant usage on schema public to public;
grant create on schema public to public;
Run Code Online (Sandbox Code Playgroud)

这些是公共架构的默认权限吗?

我有一个可以访问数据库的用户,所以我认为这无论如何都不会增加安全风险......

我想我应该对template1进行相同的修改。这是正确的吗?如何检查 template1 中的权限是否正确(例如,默认值)?

schema postgresql amazon-rds

50
推荐指数
3
解决办法
10万
查看次数

复制一个表的完整结构

使用某些方法,当您创建表的副本时,您会丢失索引、PK、FK 等。例如在 SQL Server 中,我可以说:

select * into dbo.table2 from dbo.table1;
Run Code Online (Sandbox Code Playgroud)

这只是表格的简单副本;缺少所有索引/约束。如何复制表结构(不使用备份)?

我主要希望手动执行此操作,但如果不可能,我将接受任何解决方案。

schema index sql-server constraint metadata

34
推荐指数
3
解决办法
15万
查看次数

应该避免 dbo 模式吗?

当涉及到 dbo 架构时:

  • 在创建数据库对象时避免使用 dbo 模式是最佳实践吗?
  • 为什么应该避免或应该避免 dbo 模式?
  • 哪个数据库用户应该拥有 dbo 模式?

schema sql-server-2008 sql-server best-practices

33
推荐指数
4
解决办法
3万
查看次数

仅备份一个架构并将其还原到另一台服务器上

我有一个名为“A”的数据库,它有两个模式“B”和“C”。

我想在不同的服务器上备份和恢复架构“B”(包括数据)。不知道如何做到这一点,因为我是 Postgres 的新手。

我是否必须在名为“A”的新服务器上创建一个新数据库,然后在其上恢复架构“B”?

请帮助执行必要的命令。

在 Ubuntu 12.04 上运行的 PostgreSQL 9.1

schema postgresql backup postgresql-9.1

32
推荐指数
3
解决办法
9万
查看次数

如何使用 expdp 和 impdp 命令传输数据?

我是 Oracle 菜鸟,我的目的是将所有数据和元数据从一个架构传输到 Oracle 数据库中的另一个架构。我打算使用数据泵expdpimpdp命令。我对此有疑问:

  • 我可以在没有用户的情况下创建目标模式还是应该先创建一个用户(也可以创建模式)?
  • 我可以使用 SYS(作为 sysdba)帐户执行expdpimpdp命令吗?这是首选方法吗?
  • 该语句是否从模式中获取所有对象(数据和元数据)并将它们移动到不同的模式中?

    expdp \"/ as sysdba\" schemas=<schemaname> directory=dumpdir dumpfile=<schemaname>.dmp logfile=expdp_<schemaname>.log  
    
    Run Code Online (Sandbox Code Playgroud)

    那么目标模式是impdp命令后源模式的精确副本吗?

schema oracle export impdp expdp

29
推荐指数
1
解决办法
17万
查看次数