小编Ale*_*huk的帖子

无法使用 CREATE OR REPLACE 重命名 PostgreSQL 视图中的列

在 PostreSQL 8.3 中,我试图创建一个视图,它看起来就像一个现有的表,但具有不同的列名。

这有效

CREATE OR REPLACE VIEW gfam.nice_builds AS 
 SELECT (family_tree.family_tree_id) as x,
        family_tree.family_tree_name, family_tree.family_tree_description
   FROM gfam.family_tree;
Run Code Online (Sandbox Code Playgroud)

以上复制了 family_tree 表,但以下尝试失败:

CREATE OR REPLACE VIEW gfam.nice_builds AS 
 SELECT (family_tree.family_tree_id) as x,
        family_tree.family_tree_name, family_tree.family_tree_description
   FROM gfam.family_tree;
Run Code Online (Sandbox Code Playgroud)
  • 错误:无法更改视图列“family_tree_id”的名称

如何重命名列?

postgresql

52
推荐指数
2
解决办法
4万
查看次数

设置 varchar(8000) 的后果是什么?

由于 varchar 占用的磁盘空间与字段的大小成正比,有什么理由我们不应该总是将 varchar 定义为最大值,例如varchar(8000)在 SQL Server 上?

在创建表上,如果我看到有人在做varchar(100)我应该告诉他们不你错了你应该做什么varchar(8000)

sql-server varchar

22
推荐指数
2
解决办法
3629
查看次数

PostgreSQL 中 UniProt 的生物序列

在 PostreSQL 中存储 UniProt 生物序列的最佳方法是什么?

数据详情

  • 我们从UniProt 中提取了 1200 万个序列——这个数字可能每 3-10 个月翻一番。
  • 序列的长度可以从 10 到 500 亿个字符不等
  • 少于 1% 的序列长度超过 1 万个字符
    • 单独存储较长的序列会提高性能吗?
  • 序列可以是蛋白质或 DNA 字母表
    • DNA 字母表有 5 个字符(A、T、C、G 或 -)。
    • 蛋白质字母表将有大约 30 个字符。
    • 我们不介意将两个不同字母的序列存储在不同的列甚至不同的表中。那会有帮助吗?

数据访问详情

回答 Jeremiah Peschka 的评论:

  • 蛋白质和 DNA 序列将在不同时间访问
  • 不需要在序列内搜索(这是在 db 之外完成的)
  • 是一次访问单行还是按 ID 拉出多组行。我们不需要扫描行。所有序列都被其他表引用——数据库中存在几个具有生物学意义和按时间顺序排列的层次结构。

向后兼容

如果能够继续将以下散列函数(SEGUID - SEquence Globally Unique IDentifier)应用于序列,那就太好了。

CREATE OR REPLACE FUNCTION gfam.get_seguid(p_sequence character varying)
  RETURNS character varying AS
$BODY$
declare
  result varchar := null;
  x integer; …
Run Code Online (Sandbox Code Playgroud)

postgresql

11
推荐指数
1
解决办法
748
查看次数

如何使用注释对 PostgreSQL 模式进行版本控制?

我使用Git对我的大部分工作进行版本控制:代码、文档、系统配置。我能够做到这一点,因为我所有有价值的工作都存储为文本文件。

我也一直在为我们的 Postgres 数据库编写和处理很多 SQL 模式。该模式包括视图、SQL 函数,我们将用R编程语言(通过PL/R)编写 Postgres 函数。

我试图复制和过去我和我的合作者编写的块模式,但我忘记这样做了。复制和过去的动作是重复的并且容易出错。

pg_dump / pg_restore 方法将不起作用,因为它会丢失注释。

理想情况下,我希望有某种方法将我当前的模式提取到一个或多个文件中并保留注释,以便我可以进行版本控制。

带注释的版本控制架构的最佳实践是什么?

schema postgresql version-control

9
推荐指数
1
解决办法
4029
查看次数