Axe*_*ine 3 sql postgresql sequences
在PostgreSQL中有两种类型的序列:
INFORMATION_SCHEMA.SEQUENCES返回两种类型的序列.
什么SQL语句可以获取用户创建的序列列表(没有由DB生成的序列)用于特定模式?
PS:我正在使用PostgreSQL 9
对于生成的序列,将自动定义"拥有"列,以便可以作为区分因素.
但这也可以手动完成,所以没有办法区分:
create table foo (
id_col serial not null
);
Run Code Online (Sandbox Code Playgroud)
和
create table foo (
id_col integer not null
);
create sequence foo_id_col_seq owned by foo.id_col;
Run Code Online (Sandbox Code Playgroud)
但是,如果您可以,那么以下声明可以为您提供以下信息:
SELECT s.relname as sequence_name,
t.relname as related_table,
a.attname as related_column,
d.deptype
FROM pg_class s
JOIN pg_depend d ON d.objid = s.oid
LEFT JOIN pg_class t ON d.refobjid = t.oid
LEFT JOIN pg_attribute a ON (d.refobjid, d.refobjsubid) = (a.attrelid, a.attnum)
WHERE s.relkind = 'S';
Run Code Online (Sandbox Code Playgroud)
您将通过该查询为每个序列至少获得一行:对其创建的架构的依赖性.
对于列所拥有的序列,您将获得另一行,其中包含它所属的表和列.
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |