Уведомления

Группа в Telegram: @pythonsu

#1 Июль 18, 2014 11:57:47

tutpusto
Зарегистрирован: 2014-07-18
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить строку простейшее

Новичок. Туплю. Код:

#!/usr/bin/python
# -*- coding: utf-8
import pymysql
import string

# соединяемся с базой данных
db = pymysql.connect(host="localhost", user="jack", passwd="123", db="db1", charset='utf8')
# формируем курсор
cursor = db.cursor()

# выполняем запрос
cursor.execute("""INSERT into test VALUES(1);""")
cursor.execute("""CREATE TABLE EMPLOYEE (NAME CHAR)""")

# закрываем соединение
db.close()
Так работает - добавляет в test строку. (вне зависимости от того, существовала ли уже таблица
EMPLOYEE или нет).
Если убрать строку cursor.execute(“”“CREATE TABLE EMPLOYEE (NAME CHAR)”“”) - работать перестает. Надо чтобы данные добавлялись в test, таблица EMPLOYEE нафиг не нужна.
Что-то я в синтаксисе не то написал что ли?
Заранее спасибо.

Офлайн

#2 Июль 18, 2014 13:17:05

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Добавить строку простейшее

После вставки надо фиксировать транзакцию - db.commit(), с “cursor.execute(”“”CREATE TABLE EMPLOYEE (NAME CHAR)“”“)” работает, потому команда CREATE TABLE принудительно коммитит. Еще, как вариант, можно db.autocommit = True, тогда каждый запрос будет автоматом коммитится.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Июль 18, 2014 13:57:51

tutpusto
Зарегистрирован: 2014-07-18
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить строку простейшее

Спасибо большое.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version