我最近在我的 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/