Найти - Пользователи
Полная версия: sqlite3 insert
Начало » Базы данных » sqlite3 insert
1 2 3
angry
Всем добрый день

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)
Ferroman
>>> 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()
angry
Добрый день
Спасибо.
Работая с 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)) (поля в таблице без типов)

В чем тут дело ?
PooH
cur.execute(“insert into urls (url) values(?)”, (u,))
Обратите внимание на запятую!
angry
Спасибо !

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

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

In [3]: print (s,), type((s,))
('aaa',) <type 'tuple'>
MaXvAnDl
Подскажите почему в 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.
Ed
Судя по этому http://www.sqlite.org/lang_insert.html несколько записей можно вставить, только используя форму записи с SELECT.
Lexander
MaXvAnDl
Неужели нельзя в 1 столбик вставлять как в mysql.
А вы не думали, что у разных СУБД могут быть разные диалекты SQL?
MaXvAnDl
Подскажите как реализовать вставку в 1 столбец нескольких значений. Таблица такая.
 CREATE TABLE water_heat_copacity (id INTEGER PRIMARY KEY,
temp REAL, heat_copacity REAL);
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB