所以我試圖創建一個函式來創建客戶并將他們的 ID 添加到注冊他們的公司的“client_ids_list”列中。
公司表結構:
company_id INT,
vatid INT NOT NULL,
client_ids_list VARCHAR,
company_name VARCHAR NOT NULL,
FOREIGN KEY (company_id) REFERENCES Users(ID)
代碼:
def create_client(company_id, username, password, bankaccount, address):
cursor.execute('''
INSERT INTO Users(username,password,bankaccount,address)
VALUES(?,?,?,?)''', (username, password, bankaccount, address))
print("Customer account successfully created")
client_id = int(cursor.lastrowid)
print(client_id)
cursor.execute('''
INSERT INTO Clients(client_id)
VALUES(?)''', (client_id,))
print("Client id added to the Clients table")
sclient_id = json.dumps(client_id)
cursor.execute('UPDATE Companies set client_ids_list=' sclient_id ' WHERE company_id=' str(company_id))
print("Client added to the clients ids list")
所以目標是將公司注冊的所有客戶端作為json元素存盤在client_ids_list中。但我不知道該怎么做。我試圖首先檢索列的實際值并將實際值和新值存盤到一個陣列中,然后用陣列值更新實際值但沒有成功。感謝任何幫助,我嘗試使用搜索找到答案,但沒有取得太大成功。
uj5u.com熱心網友回復:
如果您的 Sqlite 版本編譯了JSON1擴展,則類似于:
cursor.execute('''
UPDATE Companies
SET client_ids_list=json_insert(client_ids_list, '$[#]', ?)
WHERE company_id=?
''', (sclient_id,company_id))
(注意使用引數而不是嘗試直接在查詢字串中插入值,這樣可以防止許多潛在問題。)
特殊$[#]路徑 injson_insert()表示追加到陣列的末尾。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/370838.html
上一篇:在同一個表中查找重復的列
