SQLAlchemy:访问反映数据库中的现有序列
SQLAlchemy: access to existing sequence in reflected database
我现有的 PostgreSQL 数据库的序列定义为:
CREATE SEQUENCE some_schema.some_sequence_seq
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1;
在我的 python 中,我将反射的 data_base 对象定义为:
engine = create_engine(<some URL>)
data_base = automap_base()
data_base.prepare(engine, reflect=True, schema='some_schema')
例如,现在我可以使用以下方法访问数据库中的任何 table:
data_base.classes.some_table_name
所以,问题是,如何使用 data_base 对象获取 some_sequence_seq 的 nextval 值?
我知道怎么做了:
engine = create_engine(<some URL>)
data_base = automap_base()
data_base.prepare(engine, reflect=True, schema='some_schema')
metadata = MetaData(schema='some_schema')
seq = Sequence('some_sequence_seq', metadata=metadata)
现在 seq 反映了 some_sequence_seq 我们可以像这样使用它:
seq.next_value()
我现有的 PostgreSQL 数据库的序列定义为:
CREATE SEQUENCE some_schema.some_sequence_seq
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1;
在我的 python 中,我将反射的 data_base 对象定义为:
engine = create_engine(<some URL>)
data_base = automap_base()
data_base.prepare(engine, reflect=True, schema='some_schema')
例如,现在我可以使用以下方法访问数据库中的任何 table:
data_base.classes.some_table_name
所以,问题是,如何使用 data_base 对象获取 some_sequence_seq 的 nextval 值?
我知道怎么做了:
engine = create_engine(<some URL>)
data_base = automap_base()
data_base.prepare(engine, reflect=True, schema='some_schema')
metadata = MetaData(schema='some_schema')
seq = Sequence('some_sequence_seq', metadata=metadata)
现在 seq 反映了 some_sequence_seq 我们可以像这样使用它:
seq.next_value()