因此,我试图找出正确的方法来使用sqlite数据库,但我觉得当涉及到Key/ID部分时,我完全搞错了。 我肯定这个问题以前有人问过,也有人回答过,但我还没有找到,所以就这样吧。你知道吗
根据我目前收集到的信息,我应该使用Key/ID来引用表中的条目,对吗?你知道吗
因此,如果表A有一个ID为1的条目,然后有几列数据,那么表B使用表A中的ID 1来访问这些数据。 我可以这样做,只要我已经知道钥匙/身份证就行了
我不明白的是如果我还不知道该怎么做。你知道吗
考虑以下代码:
import sqlite3
conn = sqlite3.connect("./DB")
conn.execute("""CREATE TABLE IF NOT EXISTS Table_A (
A_id INTEGER NOT NULL PRIMARY KEY UNIQUE,
A_name TEXT
)""")
conn.execute("""CREATE TABLE IF NOT EXISTS Table_B (
B_id INTEGER NOT NULL PRIMARY KEY UNIQUE,
B_name TEXT,
B_A_id INTEGER
)""")
conn.execute("""INSERT INTO Table_A (A_name) VALUES ('Something')""")
conn.commit()
现在我想在表\u B中添加一个条目,并让它引用我刚才在B\u A\u id列中创建的条目。 我该怎么做?你知道吗
我不知道Key/ID是什么,我只知道在A\u name列中有'Something'。我能在不查询“某物”或直接检查数据库的情况下找到它吗?因为感觉有点倒退。你知道吗
是我做错了还是我遗漏了什么? 也许我只是在装傻。你知道吗
您的路径是正确的,但是遇到了这样一个问题:
Connection.execute()
函数实际上是创建游标并使用它执行查询的快捷方式。要在Table_A
中检索新行的id,请显式创建游标,并访问lastrowid
属性,例如:有关
Connection
和Cursor
对象的详细信息,请参阅python sqlite3 documentation。你知道吗你不需要从
Table_A
知道A_id
。您只需要列
A_name
的值,假设它是'Something'
,您希望在Table_B
中引用它,您可以这样做:或:
相关问题 更多 >
编程相关推荐