Обходной путь, который я бы порекомендовал, состоит в том, чтобы прочитать содержимое файла .sql в строковую переменную Python, как если бы вы читали любой другой текстовый файл, а затем вызвать executescript
.В отличие от execute
, executescript
может выполнять много операторов за один вызов.Например, он будет работать правильно, если ваш .sql содержит следующее:
CREATE TABLE contacts (
contact_id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL
);
INSERT INTO contacts (contact_id, first_name, last_name)
VALUES (1, 'John', 'Smith');
Вот полный фрагмент кода Python, который вам понадобится:
import sqlite3
with open('scheduling.sql', 'r') as sql_file:
sql_script = sql_file.read()
db = sqlite3.connect('scheduling.db')
cursor = db.cursor()
cursor.executescript(sql_script)
db.commit()
db.close()