我不认为我的表是在sqlite中创建的

9njqaruj  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(432)

我正在尝试使用python将表创建到sqlite3中。。。。让我知道我做错了什么,因为没有任何东西被保存到我的数据库。。。

def create_user_table():
    connection = sqlite3.connect("C:\\Users\erte\Desktop\Python\Valorank.db")
    c = connection.cursor()
    c.execute('''CREATE TABLE IF NOT EXISTS users
                (Username TEXT PRIMARY KEY,Password TEXT NOT NULL, RiotID TEXT)''')
    c.execute('''CREATE TABLE IF NOT EXISTS RANK
                (Userid TEXT PRIMARY KEY, CurrentMMR INTEGER NOT NULL, FOREIGN KEY (Userid) REFERENCES users (Username))''')
    connection.commit()
    connection.close()
    print("table created")

create_user_table()

我没有收到任何错误消息,我确实收到表已创建的消息,谢谢

tez616oj

tez616oj1#

你的代码是正确的。我怀疑你核实的方式是不正确的。
打开数据库并运行 .schema 看看所有的table。
下面是我如何验证您的代码的示例:

>>> import sqlite3
>>> def create_user_table():
...     connection = sqlite3.connect("test.db")
...     c = connection.cursor()
...     c.execute('''CREATE TABLE IF NOT EXISTS users
...                 (Username TEXT PRIMARY KEY,Password TEXT NOT NULL, RiotID TEXT)''')
...     c.execute('''CREATE TABLE IF NOT EXISTS RANK
...                 (Userid TEXT PRIMARY KEY, CurrentMMR INTEGER NOT NULL, FOREIGN KEY (Userid) REFERENCES users (Username))''')
...     connection.commit()
...     connection.close()
...     print("table created")
... 
>>> create_user_table()
table created
>>> 
>>> import os
>>> os.system("sqlite3 test.db .schema")
CREATE TABLE users
                (Username TEXT PRIMARY KEY,Password TEXT NOT NULL, RiotID TEXT);
CREATE TABLE RANK
                (Userid TEXT PRIMARY KEY, CurrentMMR INTEGER NOT NULL, FOREIGN KEY (Userid) REFERENCES users (Username));
0
>>>

相关问题