在处理旧版 Redshift 数据库时,我发现自动增量列的默认标识值有不熟悉的模式。例如。:
create table sometable (row_id bigint default "identity"(24078855, 0, '1,1'::text), ...
令人惊讶的是我找不到任何有关该身份函数的文档。我唯一能挖掘到的是以下内容:
select * from pg_proc proc
join pg_language lang on proc.prolang = lang.oid
where proc.proname = 'identity';
所以我发现这个函数是内部的,它的 prosrc 列只是ff_identity_int64
(不幸的是,谷歌无法搜索到)。
有人可以向我提供一些有关其第一个和第二个参数的信息吗?我的意思是 24078855 和 0 来自该示例"identity"(24078855, 0, '1,1'::text)
。 ('1,1'::text - 这里第一个 1 是起始值,第二个 1 是增量步长)。但24078855和0对我来说仍然很神秘。
"identity"(24078855, 0, '1,1'::text)
- 表OID
- 从 0 开始的列索引
- IDENTITY 子句提供的参数的文本表示形式
供参考看看pg_attrdef
table
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)