【发布时间】:2011-11-22 04:50:24
【问题描述】:
我已经使用 SQLAlchemy 将其迁移到新的 PostgreSQL 数据库。
我移动了与以前具有相同值的所有主键。现在我有填充数据的表,但关联的序列从 1 开始。我将 pk 值存储在 1 到 2000 之间。
现在,当我尝试使用 Django 保存某些内容时,我有
重复键值违反唯一约束 关于主键。
如何修改序列起始值或避免这种情况?
我目前的解决方案是:
conn = psycopg2.connect(...)
for table_name in table_names:
cursor = conn.cursor()
cursor.execute("""
SELECT setval('%s_id_seq', (SELECT COALESCE(MAX(id),0)+1 FROM %s));
"""% (table_name, table_name))
它对我有用,但我不喜欢它。
【问题讨论】:
标签: django postgresql auto-increment django-south