SQLite Python Blaze - Попытка создать таблицу после удаления таблицы с тем же именем возвращает старую схему
Я пытаюсь понять, почему возвращается схема удаленной таблицы, когда я пытаюсь создать таблицу, используя другой набор имен столбцов?
После удаления таблицы я могу подтвердить в проводнике SQLite, что таблица исчезла. При попытке загрузить новый файл через ODO он возвращает ошибку "Имена столбцов входящих данных не совпадают с именами столбцов существующих имен таблиц SQL в таблице SQL". Затем я вижу, что эта же таблица воссоздается в базе данных с использованием ранее удаленной схемы! Я попытался выполнить оператор VACUUM после удаления таблицы, но все еще проблема.
Я могу создать таблицу отлично, используя другое имя таблицы, однако совершенно не понимаю, почему я не могу использовать ранее удаленное имя таблицы, которое хочу использовать?
import sqlite3
import pandas as pd
from odo import odo, discover, resource, dshape
conn = sqlite3.connect(dbfile)
c = conn.cursor()
c.execute("DROP TABLE <table1>")
c.execute("VACUUM")
importfile = pd.read_csv(csvfile)
odo(importfile,'sqlite:///<db_path>::<table1'>)
ValueError: Column names of incoming data don't match column names of existing SQL table Names in SQL table:
1 ответ
import sqlite3
import pandas as pd
from odo import odo, discover, resource, dshape
conn = sqlite3.connect('test.db')
cursor = conn.cursor();
table = """ CREATE TABLE IF NOT EXISTS TABLE1 (
id integer PRIMARY KEY,
name text NOT NULL
); """;
cursor.execute(table);
conn.commit(); # Save table into database.
cursor.execute(''' DROP TABLE TABLE1 ''');
conn.commit(); # Save that table has been dropped.
cursor.execute(table);
conn.commit(); # Save that table has been created.
conn.close();