sqlite3.OperationalError: таблица книги имеет 6 столбцов, но было передано 5 значений - PullRequest
0 голосов
/ 15 января 2019

Получение ошибки:

Traceback (most recent call last):
  File "frontend.py", line 2, in <module>
    import backend
  File "/Users/egonsaks/Desktop/Demo/backend.py", line 28, in <module>
    insert("The sea", "John Tablet", 1918, 987654331)
  File "/Users/egonsaks/Desktop/Demo/backend.py", line 15, in insert
    cur.execute("INSERT INTO book VALUES (NULL,?,?,?,?)",(title, author, year, isbn))
  sqlite3.OperationalError: table book has 6 columns but 5 values were supplied

Мне нужен столбец id с целым числом первичного ключа при вставке данных в таблицу в базе данных. Я проверил свой код в соответствии с руководством и посмотрел в переполнении стека решение подобных проблем, но не нашел решения. Протестировал некоторые вещи, такие как удаление нуля, но затем говорится, что было предоставлено 6 столбцов и 4 значения.

Код здесь:

import sqlite3

def connect():
    conn = sqlite3.connect("books.db")
    cur = conn.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS book (id INTEGER PRIMARY KEY, 
    title text, author text, year integer, isbn integer)") 
    conn.commit() 
    conn.close()

def insert(title, author, year, isbn):
    conn = sqlite3.connect("books.db") 
    cur = conn.cursor()
    cur.execute("INSERT INTO book VALUES (NULL,?,?,?,?)",(title, author, year, isbn))
    conn.commit()
    conn.close()

1 Ответ

0 голосов
/ 15 января 2019

Пожалуйста, укажите ваши столбцы при вставке, это важно, и да, не включайте NULL или любое значение для столбца id!

cur.execute("INSERT INTO book(title, author, year, isbn) VALUES (?,?,?,?)",
                             (title, author, year, isbn))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...