 			}
 			
 			returnValue = Void()
-			update()
 		case .Insert:
 			if sqlite3_step(handle) != SQLITE_DONE {
 				try throwLastError(db)
 			}
 			
 			returnValue = Int(sqlite3_last_insert_rowid(db))
-			update()
 		case .Count:
 			if sqlite3_step(handle) != SQLITE_ROW { try throwLastError(db) }
 			returnValue = Int(sqlite3_column_int64(handle, Int32(0)))

	
	public func createTable<T : Sqlable>(_ : T.Type) throws {
		try execute(T.createTable())
		update()
	}
	
	func run<T : Sqlable, Return>(statement : Statement<T, Return>) throws -> Any {

	static let errorDomain = "dk.ufd.Sqlable"
	
	var transactionLevel = 0
	
	public enum Change {
		case Insert, Update, Delete
