📄 massload2.py
字号:
import testenv; testenv.simple_setup()import timefrom sqlalchemy import *from sqlalchemy.orm import *metadata = MetaData(create_engine('sqlite://', echo=True))t1s = Table( 't1s', metadata, Column( 'id', Integer, primary_key=True), Column('data', String(100)) )t2s = Table( 't2s', metadata, Column( 'id', Integer, primary_key=True), Column( 't1id', Integer, ForeignKey("t1s.id"), nullable=True ))t3s = Table( 't3s', metadata, Column( 'id', Integer, primary_key=True), Column( 't2id', Integer, ForeignKey("t2s.id"), nullable=True ))t4s = Table( 't4s', metadata, Column( 'id', Integer, primary_key=True), Column( 't3id', Integer, ForeignKey("t3s.id"), nullable=True ))[t.create() for t in [t1s,t2s,t3s,t4s]]class T1( object ): passclass T2( object ): passclass T3( object ): passclass T4( object ): passmapper( T1, t1s )mapper( T2, t2s )mapper( T3, t3s )mapper( T4, t4s )cascade = "all, delete-orphan"use_backref = Trueif use_backref: class_mapper(T1).add_property( 't2s', relation(T2, backref=backref("t1", cascade=cascade), cascade=cascade)) class_mapper(T2).add_property ( 't3s', relation(T3, backref=backref("t2",cascade=cascade), cascade=cascade) ) class_mapper(T3).add_property( 't4s', relation(T4, backref=backref("t3", cascade=cascade), cascade=cascade) )else: T1.mapper.add_property( 't2s', relation(T2, cascade=cascade)) T2.mapper.add_property ( 't3s', relation(T3, cascade=cascade) ) T3.mapper.add_property( 't4s', relation(T4, cascade=cascade) )now = time.time()print "start"sess = create_session()o1 = T1()sess.save(o1)for i2 in range(10): o2 = T2() o1.t2s.append( o2 ) for i3 in range( 10 ): o3 = T3() o2.t3s.append( o3 ) for i4 in range( 10 ): o3.t4s.append ( T4() ) print i2, i3, i4print len([s for s in sess])print "flushing"sess.flush()total = time.time() - nowprint "done,total time", total
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -