Форум сайта python.su
Ребята уже 2 недели бьюсь с этой проблемой не знаю как решать есть у меня таблица заданная так
class table(Base): engine = create_engine(url) metadata = MetaData(bind=engine) __table__ = Table('table', metadata, autoload = True) session = scoped_session(sessionmaker(bind=engine, autoflush=True, expire_on_commit=True, autocommit=False))
update_count = 0 for item in data.items(): update_count +=1 param_row = tables.table.session.query(tables.table).filter(tables.table.uid == item[0]).first() param_row.param_1 = item[1][1] param_row.param_2 = item[1][0] # tables.table.session.query(tables.table).filter_by(uid = item[0]).with_lockmode("update").update({'param_1':item[1][1], 'param_2':item[1][0]}) # как вариант записи которым пробывал # tables.table.session.query(tables.table).filter(tables.table.uid == item[0]).with_lockmode("update").update({'param_1':item[1][1], 'param_2':item[1][0]}) # как вариант записи if update_count > 99: tables.table.commit() update_count = 0
update_count = 0 for item in data.items(): update_count += 1 cur.execute(""" INSERT INTO table (uid, params_1, _params_2) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE params_1 = VALUES(params_1), params_2 = VALUES(params_2) ; """, (item[0], item[1][0], item[1][1])) if update_count > 99: con.commit() update_count = 0
Отредактировано Mazay_Ka (Май 27, 2015 12:16:59)
Офлайн