在PostgreSQL中导出序列

时间:2012-12-04 11:38:44

标签: postgresql

我想只导出在PostgreSQL中创建的数据库中创建的序列。 有没有选择呢?

谢谢!

2 个答案:

答案 0 :(得分:10)

您可以编写一个查询来生成一个脚本,该脚本将通过查询此信息架构视图来创建现有序列对象。

select *
from information_schema.sequences;

像这样。

SELECT 'CREATE SEQUENCE ' || sequence_name || ' START ' ||  start_value || ';'
from information_schema.sequences;

答案 1 :(得分:0)

我知道它太旧了,但是今天我有类似的要求,所以我尝试通过创建一系列“ CREATE SEQUENCE”查询来解决该问题,这些查询可用于在导入错误的另一个DB上重新创建序列(缺少序列) 这是我使用的SQL:

SELECT 
'CREATE SEQUENCE '||c.relname||
' START '||(select setval(c.relname::text, nextval(c.relname::text)-1))
AS "CREATE SEQUENCE SQLs"
FROM 
  pg_class c 
WHERE 
  c.relkind = 'S'

也许对某人有帮助。