我正在把一个数据库从postgres转换成mysql.

因为我找不到一个工具来实现这个技巧,所以我将在mysql中用autoincrement值将所有postgres序列转换为autoincrement ID.

那么,如何在Postgres DB(8.1版本)中列出所有序列,以及使用该序列的表、下一个值等信息,并使用SQL查询?

请注意,我不能在8.4版本中使用information_schema.sequences视图.

推荐答案

下面的查询给出了所有序列的名称.

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';

通常一个序列被命名为${table}_id_seq.简单的正则表达式模式匹配将为您提供表名.

要获取序列的最后一个值,请使用以下查询:

SELECT last_value FROM test_id_seq;

Sql相关问答推荐

平均SQL

当有空单元格时,如何连接列

如何连接第二个表并将其内容输入到第一个表的单个字段中?

SQL查询每个客户的最新条目

如何在幂函数中正确使用Power()和Exp()

删除MariaDB数据库中的JSON数据

Android房间fts4匹配语法AND OR

如果元素包含通过SQL指定的字符串,则过滤掉数组元素

我怎样才能得到列值对应的最大值在另一个?

按分类标准检索记录

Oracle PL/SQL:解决DBMS输出大小限制的问题

group-by-clause具有特定列,而不是oracle的toad中的all

如何在 golang squirrel lib 中添加 postgreSQL 的distinct on

根据时间值提取记录

统计重复记录的总数

列(值不为空)到其他有序列

根据潜在空值的条件对记录进行计数

为重复的项目编号显示正在处理

使用 SAVE TRANSACTION 时 BEGIN 和 COMMIT 语句的数量不匹配

在sql server中创建唯一标识符列