У меня есть оператор вставки.
conn = sqlite3.connect('WO1.db')
with conn:
cur1 = conn.cursor()
cur1.execute("insert into workorder (Title, Link, Status)
values (?,?,?)", ('iijiji', 'ijjijijj', '22jhhuhij'))
if conn:
conn.close()
Столбцы заголовка и ссылки имели уникальные ограничения, и я получил следующую ошибку, и моя программа остановилась.
sqlite3.IntegrityError: UNIQUE constraint failed:
Но 1 новая запись вставлена в базу данных, что я и хотел.
Затем я создал новую таблицу, в которой столбцы «Заголовок» и «Ссылка» не имели ограничения UNIQUE.
Я снова запустил программу и на этот раз не получил ошибки, однако запись была вставлена втаблица дважды, которая объясняет ошибку при наличии уникальных ограничений на ссылку и заголовок.
Есть ли логическое объяснение, почему этот оператор вставки выполняется дважды?
Примечание. Это единственное место в программе, где устанавливается соединение, выполняется запрос, а затем соединение закрывается.В программе нет другого взаимодействия с этой базой данных, кроме обычной конфигурации.
У меня не было других открытых сессий с этой базой данных, кроме как внутри этого приложения.
Я выполняю этот запрос в файле python, из которого запускается программа.
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
conn = sqlite3.connect('WO1.db')
with conn:
cur1 = conn.cursor()
cur1.execute("insert into workorder (Title, Link, Status) values
(?,?,?)", ('en24433', 'www.reddit.com', 'Not Completed'))
if conn:
conn.close()
migrate = Migrate(app, db)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(host='localhost', port=8080, debug= True)