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();
Другие вопросы по тегам