使用插入和選擇,通過一個 cursor.executescript,我將一個表的一列的資料復制到一個新表中。一切正常。使用 SQLite。

然而,問題是創建了“新”記錄行(圖片中的最后一個紅色行)。相反,我想在現有記錄的列中插入(復制)資料,因此全部在同一行中。我想我需要上傳而不是插入,但我不知道如何(使用上傳)將表的一列的資料復制到新表中。例如,我想在從 1 到 20 的所有記錄中都有資料“1”,而不是在第 21 行(第 21 行必須不存在)。我能怎么做?你能幫我寫代碼嗎?謝謝
cursor.executescript("""
INSERT INTO ARCHIVIO_Squadre_Campionato (ID_Campionato) #new table in photo
SELECT ID_Campionato FROM ARCHIVIO_Campionati #old/other table
WHERE Nome_Campionato='Serie A'; #column name of old/other table
""")
con.commit()
UPDATE: For a more precise question, I add the two sql tables:
CREATE TABLE "ARCHIVIO_Campionati" (
"ID_Campionato" INTEGER, #example: 1
"Nome_Campionato" INTEGER, #example: Serie A
PRIMARY KEY("ID_Campionato" AUTOINCREMENT)
);
CREATE TABLE "ARCHIVIO_Squadre_Campionato" (
"ID_Sq" INTEGER,
"Nome_Squadra" TEXT,
"ID_Campionato" INTEGER,
);

uj5u.com熱心網友回復:
您是否試圖為所有球隊設定冠軍賽場?編輯/更新資料是 UPDATE 的作業。
嘗試
UPDATE ARCHIVIO_Squadre_Campionato
SET
ID_Campionato= (SELECT ID_Sq
FROM ARCHIVIO_Campionati
WHERE Nome_Campionato = 'Serie A');
如果你解釋你想做什么,而不是你認為應該如何做,通常會更容易得到答案
uj5u.com熱心網友回復:
在 中插入這 20 行后ARCHIVIO_Squadre_Campionato,您必須更新表而不是插入新行:
UPDATE ARCHIVIO_Squadre_Campionato
SET ID_Campionato = (
SELECT ID_Campionato
FROM ARCHIVIO_Campionati
WHERE Nome_Campionato='Serie A'
)
WHERE ID_Campionato IS NULL;
該WHERE子句并不是真正需要的,因為所有行(在表的當前狀態下)在列中都有 NULL,ID_Campionato但在對不同值(例如“Serie B”行)的相同查詢的后續呼叫中將需要它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/337748.html
標籤:python sql python-3.x sqlite
上一篇:這些Vue框架用起來很舒服
