重置PostgreSQL序列 - schema.table.sequence_name

时间:2017-10-25 10:09:36

标签: postgresql sqlalchemy sequence

我不确定如何使用relation X does not exist函数重置POSTGRESQL中的序列。所有文档只提到以下语法(表)_(sequencename)_seq,但我一直收到错误,我尝试schema name.(table)_(sequencename)_seq的任何组合中的这种关系。

我还尝试了以下内容:customers_pkey

在Constraints下表的属性中,我看到主键名为id,相关列为('columns before conversion', [[u'id', u'binary(16)', u'NO', u'PRI', None, u''], [u'person_id', u'varchar(255)', u'NO', u'', None, u''], [u'ident_id', u'varchar(255)', u'NO', u'', None, u''],[u'seller_id', u'binary(16)', u'YES', u'MUL', None, u''], [u'inserted_at', u'datetime', u'NO', u'', None, u'']])

请在我的初始问题中找到其他背景信息:

以下是通过我正在运行的脚本检索到的Customers表的摘录。基本上,这个服务从我们的生产中检索元数据和数据,然后将它摄入Postgresql数据库(请注意主键是Binary类型):

[OrderedDict([('name', u'id'), ('type_', <class 'sqlalchemy.sql.sqltypes.Unicode'>), ('nullable', False), ('default', None), ('autoincrement', False), ('primary_key', True), ('unique', False)]), OrderedDict([('name', u'person_id'), ('type_', <class 'sqlalchemy.sql.sqltypes.String'>), ('nullable', False), ('default', None), ('autoincrement', False), ('primary_key', False), ('unique', False)]), OrderedDict([('name', u'ident_id'), ('type_', <class 'sqlalchemy.sql.sqltypes.String'>), ('nullable', False), ('default', None), ('autoincrement', False), ('primary_key', False), ('unique', False)]), OrderedDict([('name', u'seller_id'), ('type_', <class 'sqlalchemy.sql.sqltypes.Unicode'>), ('nullable', True), ('default', None), ('autoincrement', False), ('primary_key', False), ('unique', False)]), OrderedDict([('name', u'inserted_at'), ('type_', <class 'sqlalchemy.sql.sqltypes.DateTime'>), ('nullable', False), ('default', None), ('autoincrement', False), ('primary_key', False), ('unique', False)])])

这是使用sqlalchemy转换后的元数据以适合POSTGRESQL:

new model

我收到的错误是:

  

(psycopg2.IntegrityError)重复键值违反唯一   约束“customers_pkey”   详情:Key(id)=(aion} { } HQDAS 987)已经存在

错误很奇怪,因为每次运行导入脚本时都会完全删除此表,然后自动从头开始创建表。 我正在寻找重置序列作为一个测试,以检查是否以某种方式,即使表被删除,序列被保存在内存/缓存中,这就是为什么错误被提出的原因。

否则我在这里不知所措。

由于

0 个答案:

没有答案