Не могу использовать автоинкремент
По гайдам пытался добавить в свой скрипт автоинкремент, но он почему то требует передать столбец id, но в гайдах я такого нет.
Как можно сделать правильно?
import sqlite3
db = sqlite3.connect('server.db')
sql = db.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY autoincrement,
login TEXT,
password TEXT
)""")
db.commit()
user_login = input("Login: ")
user_passwd = input("Password: ")
sql.execute("SELECT login FROM users")
if sql.fetchone() is None:
sql.execute("INSERT INTO users VALUES (?,?)", (user_login, user_passwd) )
db.commit()
else:
print("Такая запись уже есть")
Текст сообщения об ошибке:
OperationalError: table users has 3 columns but 2 values were supplied
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Надо явно указать, что вы делаете вставку в два столбца, чтобы число значений в VALUES(...) соответствовало числу столбцов указанных в скобках после имени таблицы:
sql.execute("INSERT INTO users(login, password) VALUES (?,?)",
(user_login, user_passwd))
PS если после имени таблицы не указаны столбцы (в скобках), в которые мы вставляем данные, то по умолчанию берутся все столбцы таблицы.
