Итак, я новичок в области SQL, postgresql и управления базами данных, но мне нужна база данных для бот-диска, который я делаю.Я использую asyncpg для управления базой данных с python
Теперь, скажем, у меня есть команда, которую нужно найти, если имя пользователя уже существует в этой базе данных:
try:
with open("creds.json", "r") as file:
creds = json.load(file)
print("\n" + "Connecting to database")
host = creds["DB_HOST"]
user = creds["DB_USER"]
password = creds["DB_TOKEN"]
database = creds["DB_NAME"]
conn = await asyncpg.connect(host=host, user=user, password=password, database=database)
print("\n"+ f"PostgreSQL conection to database stablished succesfully")
exists = await conn.fetch('''
SELECT EXISTS (
SELECT 1
FROM table
WHERE username=($1));
''', str(discordusername#1234))
await conn.close()
print("Query finished, connection to database closed")
print(exists)
Она либо возвращает Trueили False в этой форме [<Record exists=False>] or [<Record exists=True>]
, поэтому, чтобы проверить, является ли оно истинным или ложным, я должен преобразовать 'существующие' в строку, а затем сравнить его с [<Record exists=False>] or [<Record exists=False>]
в виде строки:
if str(exists) == "[<Record exists=False>]":
...
elif str(exists) == "[<Record exists=True>]"
...
Есть ли в любом случае «преобразовать» [<Record exists=False>]
в простое False и [<Record exists=False>]
в простое True, что Python может непосредственно понять?
то же самое происходит при получении значения из таблицы, скажем, и int, которые имеютбыть адресованным таким же образом, возвращая, например,
[<Record rowname=5>]