3
所以我很新的SQLAlchemy。插入對象的最快方法,如果它不存在與SQLAlchemy
我有一個模型顯示其中有約10,000行在表中。這裏是該類:
class Showing(Base):
__tablename__ = "showings"
id = Column(Integer, primary_key=True)
time = Column(DateTime)
link = Column(String)
film_id = Column(Integer, ForeignKey('films.id'))
cinema_id = Column(Integer, ForeignKey('cinemas.id'))
def __eq__(self, other):
if self.time == other.time and self.cinema == other.cinema and self.film == other.film:
return True
else:
return False
任何人都可以給我一些指導,如果它不存在已插入新的顯示最快的方式。我認爲它稍微複雜一些,因爲如果時間,cinmea和電影在展示中獨一無二,那麼展示纔是唯一的。
我現在有這樣的代碼:
def AddShowings(self, showing_times, cinema, film):
all_showings = self.session.query(Showing).options(joinedload(Showing.cinema), joinedload(Showing.film)).all()
for showing_time in showing_times:
tmp_showing = Showing(time=showing_time[0], film=film, cinema=cinema, link=showing_time[1])
if tmp_showing not in all_showings:
self.session.add(tmp_showing)
self.session.commit()
all_showings.append(tmp_showing)
它的工作原理,但似乎是很慢的。任何幫助深表感謝。
謝謝!它工作完美,約x100更快! – user1110718