PRAGMA table_info испортил набор результатов
У меня есть этот скрипт:
#!/usr/bin/env python3 import sqlite3 conn = sqlite3.connect('sample.dbf') try: conn.execute('''DROP TABLE mytable''') except: pass conn.execute('''CREATE TABLE mytable (parentId TEXT, childId TEXT)''') conn.execute('''INSERT INTO mytable VALUES('A', 'B')''') conn.execute('''INSERT INTO mytable VALUES('C', 'D')''') c1 = conn.cursor() c1.execute('''SELECT * FROM mytable''') #c2 = conn.cursor() #c2.execute('''PRAGMA table_info(mytable)''') for row in c1: print(row)
Ожидается выход:
('A', 'B') ('C', 'D')
Однако, если я повторно добавлю две прокомментированные строки, чтобы прочитать информацию таблицы перед повторением набора результатов от первого курсора, я получаю
('A', 'B') ('A', 'B') ('C', 'D')
Должны ли курсоры быть независимыми? Почему PRAGMA table_info
результирующий набор из первого запроса? Похож на ошибку в sqlite для меня, но, возможно, я тоже что-то пропустил …
Версия sqlite3 2.6.0 с SQLite runtime 3.8.3.1 на Python 3.4.2
- Ограничить библиотечное ограничение объектов в python
- Почему функция ipaddress.IPv6Network.hosts Python3 опускает первый и последний IPv6-адрес?
- imp.load_source другой файл, чем .py, но .py также существует в этом каталоге
- Трансформатор даты
- Ошибка времени компиляции Python при использовании GeoJson
- Запросы Python: загрузка только в случае
- buildozer -v android debug: компиляция не выполняется на fcntlmodule.c
- Значения dataframe Pandas отказываются оцениваться как float с `.apply (eval)`. Зачем?
- Получение вывода процесса во время выполнения
- Пример использования легенды matplotlib с использованием mpatches not working
- добавьте два списка, затем sort = None (?)
- map – конвертировать вложенный цикл для сопоставления эквивалента
- Использование оператора return в генераторах
- Использование символа юникода u201c
- Pythonic способ инициализировать объект с большим количеством параметров и значением по умолчанию
- Бесконечная рекурсия в функции Python, если аргумент слишком длинный