Уведомления

Группа в Telegram: @pythonsu

#1 Июль 20, 2010 22:04:20

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite вставка одиночного значения

    conn  = sqlite3.connect(name)
cur = conn.cursor()

cur.execute("""
create table Department
(Department_ID integer primary key AUTOINCREMENT,
Name text);
""")


department_data = (u'Бухгалтерия', u'Строительный отдел',
u'Отдел снабжения', u'Плановый отдел',
u'Кадровый отдел')

cur.executemany("insert into Department(Name) values (?)", department_data))
cur.commit()

ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 11 supplied.
Как мне сделать вставку в справочник с двумя полями, одно из которых автоинкрементное? Ума не приложу, подскажите :)



Отредактировано (Июль 20, 2010 22:30:19)

Офлайн

#2 Июль 20, 2010 22:25:04

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite вставка одиночного значения

ха…

сработало вот так

    for i in department_data:
cur.execute("insert into Department(Name) values (?)", (i,))



Офлайн

#3 Июль 21, 2010 00:10:01

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

sqlite вставка одиночного значения

По идее, вот так должно сработать.
Я код не проверял, но смысл в том, что каждый из элементов department_data должен быть отдельным tuple.
Т.е. именно то, что ты сделал в цикле, когда написал (i, ).

    department_data = [(u'Бухгалтерия', ), (u'Строительный отдел', ),
(u'Отдел снабжения', ), (u'Плановый отдел', ),
(u'Кадровый отдел', )]

cur.executemany("insert into Department(Name) values (?)", department_data))



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version