Как добавить в одну колонну SQLite несколько значений?

Допустим, есть колонка с названием id и нужно туда поместить 2 переменные, но когда пытаюсь внести вторую, система не запоминает. Код, если нужен:

user_id = [(0002)]
users_id = [(01)]

def table_os():

    con = sqlite3.connect('/py/kess.sqlite')

    cur = con.cursor()

    cur.execute('INSERT INTO userlevent (id) VALUES (?)', (user_id))

    con.commit()
    cur.close()
    con.close()

После того как я внес user_id, меняю на users_id, запускаю но выводит все-же user_id.


Ответы (1 шт):

Автор решения: gil9red

Чтобы список добавить в запрос можно использовать цикл, например:

import sqlite3

def table_os():
    users_id = [1, 2, 3]

    con = sqlite3.connect('/py/kess.sqlite')
    cur = con.cursor()

    for user_id in users_id:
        cur.execute('INSERT INTO userlevent (id) VALUES (?)', [user_id])

    con.commit()
    cur.close()
    con.close()

А лучше использовать не execute, а executemany:

import sqlite3

def table_os():
    # Список кортежей на один элемент
    users_id = [(1,), (2,), (3,)]
    # Или список списков: [[1], [2], [3]]

    con = sqlite3.connect('/py/kess.sqlite')
    cur = con.cursor()

    cur.executemany('INSERT INTO userlevent (id) VALUES (?)', users_id)

    con.commit()
    cur.close()
    con.close()
→ Ссылка