所以,我是一个关于 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>]"
...
无论如何“转换”为Python 可以直接理解[<Record exists=False>]
的普通 False 和普通 True 吗?[<Record exists=False>]
从表中获取值时也是如此,例如,必须以相同方式处理的 int 值,例如返回,
[<Record rowname=5>]