我有我的SQLite數據庫3個表如下:INSERT與SELECT工作一次
表first_names
id
name
gender
表last_names
id
name
表名
id
first
last
gender
birthday (null)
used (default 0)
首先和最後是唯一的,並且在名稱表上也有一個唯一的索引。
爲了填充名稱表我已經使用了下面的查詢,這是第一次工作,但是在我給last_names添加了一個新名稱並嘗試再次使用它之後,它失敗了。
INSERT INTO names (first, last, gender)
SELECT f.name AS first, l.name AS last, f.gender AS gender
FROM first_names f
LEFT JOIN last_names l
WHERE f.name NOT IN (SELECT first FROM names) AND
l.name NOT IN (SELECT last FROM names)
在使用(first, last, gender, [birthday], [used])
與價值觀也嘗試作爲null AS [birthday], 0 AS [used]
但因爲它的生日設置爲上表的設計null且用於0作爲默認值,它的工作就第一時間沒有想到這將需要也不做無論如何,任何差異。
我認爲這是因爲獨特的領域,但我確實有一個地方,以確保名稱不在表名中。
我已經嘗試使用C#和SQLiteAdmin執行查詢,無需請求結果執行,否則它不工作。
我的查詢有什麼問題,爲什麼它只能用一次?
你是什麼意思查詢失敗?它沒有插入任何記錄嗎?它有錯誤嗎?錯誤是什麼? –
@AdamWenger它不會拋出任何錯誤,它只是失敗的沉默......是的,它沒有添加任何新的記錄,它用於添加新名稱,使用我剛剛添加的新姓氏。事實上,在SQLiteAdmin中,它表示查詢已執行且數量爲ms。 – Prix
我都是爲了「正常化」,但我認爲三個表名稱是有點過分:)恕我直言...... – paulsm4