Я слежу за этим sqlite3 для учебника по питону.
Я пытаюсь вставить строку в таблицу с помощью этого сценария:
conn = sqlite3.connect(database)
sql = ''' INSERT INTO projects(name,begin_date,end_date)
VALUES(?,?,?) '''
project = ('X', '2015-01-01', '2015-01-30');
cur = conn.cursor()
cur.execute(sql,project)
conn.close()
Я могу запустить его без ошибок, но строка не вставлена.
Хотя строка вставляется при использовании with
:
with conn:
sql = ''' INSERT INTO projects(name,begin_date,end_date)
VALUES(?,?,?) '''
project = ('X', '2015-01-01', '2015-01-30');
cur = conn.cursor()
cur.execute(sql,project)
Кто-нибудь знает, что происходит?
UPDATE
Я нашел в docs.python.org
что после одного или нескольких execute
утверждений каждый делает commit
, как в
cur.execute(sql, project)
conn.commit()
и все идет хорошо.
Но, тем не менее, я был бы очень признателен за некоторое техническое объяснение ключевого слова with
1030 *.