Не записывается ID в sqlite

Рейтинг: 0Ответов: 1Опубликовано: 03.08.2023

Не записывается ID в sqlite. Остальное все записывается, без create table id not null, id всегда равен NULL, а хотелось бы, чтобы работал инкремент.

введите сюда описание изображения

Я хочу сделать, чтобы через пайтон я вводил данные в sqlite и чтобы у каждого заказа был свой ID, который работает по increment, чтобы сам делал значения. В SQL management studio работает ID INCREMENT, но в Python не работает.

ДБ создана такой командой:

CREATE TABLE MainDB(
    id int IDENTITY(1,1) NOT NULL,
    username nvarchar(50) NOT NULL,
    request nvarchar(50) NOT NULL,
    Icount nvarchar(50) NOT NULL
)

Ответы

▲ 1Принят
import sqlite3

# Создать базу и Таблицу   

try:
    con = sqlite3.connect('w.db')
    cursor = con.cursor()
    cursor.execute('''CREATE TABLE IF NOT EXISTS   MainDB (id INTEGER PRIMARY KEY ,
     username TEXT NOT NULL,
      request TEXT NOT NULL,
       Icount TEXT NOT NULL);''')
    con.commit()
except sqlite3.Error as error:
    print("Ошибка при подключении к sqlite", error)
finally:
    if (con):
        con.close()
        print("Соединение с SQLite закрыто")

#Заполнить данными

try:
    x=['myname','blabla','count']
    con = sqlite3.connect('w.db')
    cursor = con.cursor()
    cursor.execute('''INSERT INTO MainDB(username,request,Icount) VALUES (?,?,?)''',x)
    con.commit()
except sqlite3.Error as error:
    print("Ошибка при подключении к sqlite", error)
finally:
    if (con):
        con.close()
        print("Соединение с SQLite закрыто")



# Получить данные   



try:
    con = sqlite3.connect('w.db')
    cursor = con.cursor()
    xx=cursor.execute('''SELECT * FROM MainDB''')
    con.commit()
    print(xx.fetchall())
except sqlite3.Error as error:
    print("Ошибка при подключении к sqlite", error)
finally:
    if (con):
        con.close()
        print("Соединение с SQLite закрыто")


Соединение с SQLite закрыто
Соединение с SQLite закрыто
[(1, 'myname', 'blabla', 'count')]
Соединение с SQLite закрыто