由于 varchar 占用的磁盘空间与字段的大小成正比,我们有什么理由不总是将 varchar 定义为最大值,例如varchar(8000)
在 SQL Server 上?
在创建表上,如果我看到有人在做,varchar(100)
我应该告诉他们不,你错了,你应该做什么varchar(8000)
?
由于 varchar 占用的磁盘空间与字段的大小成正比,我们有什么理由不总是将 varchar 定义为最大值,例如varchar(8000)
在 SQL Server 上?
在创建表上,如果我看到有人在做,varchar(100)
我应该告诉他们不,你错了,你应该做什么varchar(8000)
?
在 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;
上面复制了 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;
如何重命名列?
在 PostreSQL 中存储 UniProt 生物序列的最佳方式是什么?
回答 Jeremiah Peschka 的评论:
如果能够继续能够将以下哈希函数(SEGUID - 序列全球唯一标识符)应用于序列,那就太好了。
CREATE OR REPLACE FUNCTION gfam.get_seguid(p_sequence character varying)
RETURNS character varying AS
$BODY$
declare
result varchar := null;
x integer;
begin
select encode(gfam.digest(p_sequence, 'sha1'), 'base64')
into result;
x := length(result);
if substring(result from x for 1) = '=' then
result := substring( result from 1 for x-1 );
end if;
return result;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;