database - 如何让所有序列与 PostgreSQL 中的表绑定(bind)

标签 database django postgresql sequences

我最近在我的 Django 应用程序中从 MySQL 切换到 PostgreSQL,我需要将所有序列的最后一个值设置为最大值。对应表和列的编号。如何获取与表相关的所有序列?到目前为止,我正在做类似的事情:

SELECT sequence_name FROM information_schema.sequences 
WHERE sequence_name LIKE 'table_name%';

但我不喜欢这种方法,主要是因为我必须另外清理结果。是否有一些 ID 将表与其序列连接起来。

现在我无法将任何对象添加到我的数据库中,因为 Postgre“自动递增”从 1 开始运行并且新对象的 PK 与现有记录冲突。

注意:我的 Django 应用程序非常大,我使用了几个额外的包,所以命名约定不一致(表名有/没有应用程序前缀,PK 列就像'tableid'或'table_id'只是' id' 等等)

最佳答案

假设您没有做任何太不寻常的事情,请尝试以下两个查询。

SELECT * FROM information_schema.sequences ;
SELECT * FROM information_schema.columns WHERE column_default LIKE 'nextval%';

这应该告诉您您需要知道的内容。我可能只是从 column_default 字段中删除序列名称。

关于database - 如何让所有序列与 PostgreSQL 中的表绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13309203/

相关文章:

c++ - Okcupid.com(无需访问数据库即可找到匹配项!?)

python - 如何模拟 django 信号处理程序?

database - Oracle 执行计划改变

sql-server - 数据仓库中的自定义/动态分类

python - Django:在网站上显示txt文件的内容

java - postgres : inserting array of custom type

sql - 如何检索 GROUP BY sql 语句中的特定列?

database - PREPARE 语句在几次调用后决定不使用索引,即使它更慢

database - 如何从 cassandra session 获取键空间名称

jquery - Django ajax POST 扩展 beforeSend 方法用于 CSRF 保护