SQLite no guarda datos entre usos

Realicé un módulo con los siguientes contenidos:

import sqlite3 as sq connection = sq.connect("test.db") cursor = connection.cursor() cursor.execute("DROP TABLE IF EXISTS test") cursor.execute("CREATE TABLE test (st TEXT)") cursor.execute("INSERT INTO test VALUES ('testing')") cursor.execute("SELECT * FROM test") print(cursor.fetchall()) cursor.close() connection.close() connection2 = sq.connect("test.db") cursor2 = connection2.cursor() cursor2.execute("SELECT * FROM test") print(cursor2.fetchall()) 

Pero cuando lo ejecuté, imprimió lo siguiente:

 [('testing',)] [] 

Debería haber impreso:

 [('testing',)] [('testing',)] 

¿Qué está mal?

No ha confirmado sus cambios en la base de datos. Cuando descartes la conexión, la transacción se retrotraerá. Esto funciona

 import sqlite3 as sq connection = sq.connect("test.db") cursor = connection.cursor() cursor.execute("DROP TABLE IF EXISTS test") cursor.execute("CREATE TABLE test (st TEXT)") cursor.execute("INSERT INTO test VALUES ('testing')") connection.commit() # !!! cursor.execute("SELECT * FROM test") print(cursor.fetchall()) cursor.close() connection.close() connection2 = sq.connect("test.db") cursor2 = connection2.cursor() cursor2.execute("SELECT * FROM test") print(cursor2.fetchall())