@start_router.message(Form.name)
async def add_name(message: types.Message):
user_name = message.text.strip()
async with aiosqlite.connect('base.db') as db:
await db.execute('INSERT OR IGNORE INTO user (name) VALUES("%s")' % (user_name))
await db.commit()
await message.answer("Готово") @dp.message_handler(state=Form.name)
async def add_name(message: types.Message):
user_name = message.text.strip()
try:
async with aiosqlite.connect('base.db') as db:
await db.execute('INSERT OR IGNORE INTO user (name) VALUES (?)', (user_name,))
await db.commit()
await message.answer("Готово")
except Exception as e:
await message.answer(f"Произошла ошибка {e}") $ sqlite3 bot.db
SQLite version 3.37.2 2022-01-06 13:25:41
Enter ".help" for usage hints.
sqlite> .schema files
CREATE TABLE files (
file_name TEXT VARCHAR(256) UNIQUE,
file_id TEXT VARCHAR(256)
);
sqlite> $ sqlite3
SQLite version 3.37.2 2022-01-06 13:25:41
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> CREATE TABLE user (
id INTEGER PRIMARY KEY,
username TEXT UNIQUE,
usertg TEXT UNIQUE,
name TEXT UNIQUE
);
sqlite> insert into user (name) values ('test');
sqlite> insert into user (name) values ('test');
Error: stepping, UNIQUE constraint failed: user.name (19)
sqlite> insert or ignore into user (name) values ('test');
sqlite> insert or ignore into user (name) values ('test');
sqlite> insert or ignore into user (name) values ('test');
sqlite> select count(*) from user;
1
sqlite>