import sqlite3 conn = sqlite3.connect(':memory:') cursor = conn.cursor() cursor.execute('CREATE TABLE A (bar)') cursor.execute('CREATE TABLE B (baz)') def foo(): cursor.execute('INSERT INTO A (bar) VALUES (?)', (1,)) yield 1 cursor.executemany('INSERT INTO B (baz) VALUES (?)', (i for i in foo()))