Форум сайта python.su
Всем добрый день
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)
Офлайн
>>> 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()
Офлайн
Добрый день
Спасибо.
Работая с 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)) (поля в таблице без типов)
В чем тут дело ?
Офлайн
cur.execute(“insert into urls (url) values(?)”, (u,))
Обратите внимание на запятую!
Отредактировано (Фев. 2, 2010 10:06:46)
Офлайн
Спасибо !
Кстати почему так (u,) необходима запятая
Офлайн
angry
Кстати почему так (u,) необходима запятая
In [1]: s = 'aaa'
In [2]: print (s), type((s))
aaa <type 'str'>
In [3]: print (s,), type((s,))
('aaa',) <type 'tuple'>
Офлайн
Подскажите почему в 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);
Отредактировано (Март 11, 2010 21:48:23)
Офлайн
Судя по этому http://www.sqlite.org/lang_insert.html несколько записей можно вставить, только используя форму записи с SELECT.
Офлайн
MaXvAnDlА вы не думали, что у разных СУБД могут быть разные диалекты SQL?
Неужели нельзя в 1 столбик вставлять как в mysql.
Офлайн
Подскажите как реализовать вставку в 1 столбец нескольких значений. Таблица такая.
CREATE TABLE water_heat_copacity (id INTEGER PRIMARY KEY,
temp REAL, heat_copacity REAL);
Офлайн