Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 25, 2010 00:03:40

angry
От:
Зарегистрирован: 2009-12-20
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite3 insert

Всем добрый день

import sqlite3

cursor.execute("select rowid from tablename where word=w1)

id=cursor.fetchall()

id - список вида

Как эти значения вставить в другую таблицу ?

Такой код выдает ошибку, что требуется тип integer

execute(“insert into table(field) values (%d)” % (id))
execute(“insert into table(field) values (?)” ,id)



Офлайн

#2 Янв. 25, 2010 01:34:12

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

sqlite3 insert

>>> import sqlite3
>>> con = sqlite3.connect(":memory:")
>>> cur = con.cursor()
>>> cur.execute("create table numbers(number1 int, number2 int)")
<sqlite3.Cursor object at 0xa1f8e30>
>>> id_list = [(1,),(3,)]
>>> con.execute("insert into numbers(number1) values (?)" ,id_list[0])
<sqlite3.Cursor object at 0xa1f8f80>
>>> cur.execute("select number1 from numbers")
<sqlite3.Cursor object at 0xa1f8e30>
>>> print "Numbers:", cur.fetchone()[0]
Numbers:
1
>>> cur.close()
>>> con.close()

Офлайн

#3 Фев. 2, 2010 09:49:34

angry
От:
Зарегистрирован: 2009-12-20
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite3 insert

Добрый день
Спасибо.
Работая с sqlite забываешь что поля могут иметь тип

По поводу insert

Делаю так:

u='http://www.yandex.ru/index//'
import sqlite3 as sqlite
con=sqlite.connect(“:memory:”)
cur=con.cursor()
cur.execute(“create table urls(url)”)
<sqlite3.Cursor object at 0x01AFF500>
cur.execute(“insert into urls (url) values(?)”,(u))
Traceback (most recent call last):
File “<input>”, line 1, in <module>
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 28 supplied.

и так

cur.execute(“insert into urls (url) values(%s)” %u)
Traceback (most recent call last):
File “<input>”, line 1, in <module>
OperationalError: unrecognized token: “:”

При этом если я ввожу такую строку "http://www.yandex.ru“ через форму на странице, то все нормально пишется
такой же командой
cur.execute(”insert into person (name,url) values(?,?)",(name,url)) (поля в таблице без типов)

В чем тут дело ?



Офлайн

#4 Фев. 2, 2010 10:05:55

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

sqlite3 insert

cur.execute(“insert into urls (url) values(?)”, (u,))
Обратите внимание на запятую!



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

Отредактировано (Фев. 2, 2010 10:06:46)

Офлайн

#5 Фев. 2, 2010 10:45:55

angry
От:
Зарегистрирован: 2009-12-20
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite3 insert

Спасибо !

Кстати почему так (u,) необходима запятая



Офлайн

#6 Фев. 2, 2010 10:55:30

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

sqlite3 insert

angry
Кстати почему так (u,) необходима запятая
In [1]: s = 'aaa'

In [2]: print (s), type((s))
aaa <type 'str'>

In [3]: print (s,), type((s,))
('aaa',) <type 'tuple'>



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

Офлайн

#7 Март 11, 2010 21:47:12

MaXvAnDl
От:
Зарегистрирован: 2009-09-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite3 insert

Подскажите почему в Sqlite3 не возможно выполнить

CREATE TABLE water_heat_copacity (id INTEGER PRIMARY KEY,
temp REAL, heat_copacity REAL);
INSERT INTO water_heat_copacity (temp) VALUES (0, 10, 20);
Пишет Error 3 values for 1 columns. Неужели нельзя в 1 столбик вставлять как в mysql.



Отредактировано (Март 11, 2010 21:48:23)

Офлайн

#8 Март 11, 2010 23:47:13

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

sqlite3 insert

Судя по этому http://www.sqlite.org/lang_insert.html несколько записей можно вставить, только используя форму записи с SELECT.



Офлайн

#9 Март 12, 2010 00:18:04

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

sqlite3 insert

MaXvAnDl
Неужели нельзя в 1 столбик вставлять как в mysql.
А вы не думали, что у разных СУБД могут быть разные диалекты SQL?



Офлайн

#10 Март 12, 2010 13:18:53

MaXvAnDl
От:
Зарегистрирован: 2009-09-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite3 insert

Подскажите как реализовать вставку в 1 столбец нескольких значений. Таблица такая.

 CREATE TABLE water_heat_copacity (id INTEGER PRIMARY KEY,
temp REAL, heat_copacity REAL);



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version