我想存儲對SQL數據庫的額外表中的數據庫條目的引用與通用目的。有沒有一種有效的方法來創建一個對象,並立即獲得在SQLAlchemy中新創建的對象的自動增加的ID
在SQLAlchemy中我的數據模型是這樣的:
class Entity(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(10))
def __init__(self, name):
self.name = name
class Entry(db.Model):
id = db.Column(db.Integer, primary_key=True)
name= db.Column(db.String(10))
entity_id = db.Column(db.Integer, db.ForeignKey('entity.id'))
def __init__(self, name, entity_id):
self.name = name
self.entity_id = entity_id
class Thing(db.Model):
id = db.Column(db.Integer, primary_key=True)
name= db.Column(db.String(10))
entity_id = db.Column(db.Integer, db.ForeignKey('entity.id'))
def __init__(self, name, entity_id):
self.name = name
self.entity_id = entity_id
只要一個項或事情創建,應該有參考ENTITY_ID在新創建的條目實體。爲了解決這個問題,我先創建一個實體,將其提交,然後從新創建的實體中獲取ID,並使用抓取的ID創建條目或東西。
# Create a new Entity object
entity = Entity(entity_title)
# Commit the entity
db.session.add(entity)
db.session.commit()
# Get the entity ID
entity_id = Entity.query.filter_by(name=entity_title).first().id
# Create a new Entry/Thing object
entry= Entry(name, entity_id)
# Commit the entry
db.session.add(task)
db.session.commit()
這種方式似乎相當低效。有沒有其他辦法可以解決這個問題?
謝謝!這正是我想要的。 – heribert