在PostgreSQL中导出序列

use*_*964 6 postgresql

我想只导出在PostgreSQL中创建的数据库中创建的序列.有什么选择吗?

谢谢!

Kub*_*aun 10

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

select *
from information_schema.sequences;
Run Code Online (Sandbox Code Playgroud)

像这样的东西.

SELECT 'CREATE SEQUENCE ' || sequence_name || ' START ' ||  start_value || ';'
from information_schema.sequences;
Run Code Online (Sandbox Code Playgroud)


小智 5

我知道它太旧了,但今天我有类似的要求,所以我尝试通过创建一系列“CREATE SEQUENCE”查询以相同的方式解决它,这些查询可用于在导入错误(丢失序列)的其他数据库上重新创建序列这是我使用的 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'
Run Code Online (Sandbox Code Playgroud)

也许这对某人有帮助。