SQLite — приёмы работы с базой данных в Python
UPSERT
Вставить новую запись, а если существует – обновить. Поле, по которому планируется проверять, существует ли запись – должно быть уникальным (UNIQUE)
https://www.sqlite.org/lang_UPSERT.html
INSERT INTO Money ('nick', 'money')
VALUES('StriBog45' , '300')
ON CONFLICT(nick) DO UPDATE SET
money=600;
Игнорировать запись, если существует
Вставить новую запись, а если существует — ничего не делать. Поле, по которому планируется проверять, существует ли запись – должно быть уникальным (UNIQUE). Для этого при создании таблицы, нужно указать UNIQUE ("nick") ON CONFLICT IGNORE
.
CREATE TABLE "sellers" (
"seller_id" INTEGER NOT NULL,
"nick" TEXT UNIQUE,
"shop_name" TEXT,
PRIMARY KEY("seller_id" AUTOINCREMENT)
UNIQUE ("nick") ON CONFLICT IGNORE
)
SQLite foreign key
https://pyneng.github.io/pyneng-3/db-foreign-key/
Очистить таблицу
Простой запрос очистит таблицу. Но индексы останутся. Поэтому лучше очищать таблицу с уплотнением базы данных VACUUM
.
DELETE FROM table_name;
VACUUM;